BCursor(const void *cursorData)case 1: cursorData is NULL =>empty cursor object (useless)case 2: cursorData points to valid data =>valid cursor objectcase 3: cursorData points to invalid data =>empty cursor object (useless)BCursor(BMessage *archive)case 1: archive is NULL =>empty cursor object (useless)case 2: archive points to a valid archive =>empty cursor object (useless, R5 does not support archiving)static BArchivable *Instantiate(BMessage *archive)case 1: archive is NULL =>returns NULLcase 2: archive points to a valid archive =>returns NULL (R5 does not support archiving)status_t Archive(BMessage* into, bool deep = true)case 1: into is NULL =>returns B_OKcase 2: into is a valid message =>returns B_OK (archiving not implemented in R5)status_t Perform(perform_code d, void* arg)case 1: arg is NULL =>returns B_OKcase 2: arg points to something =>returns B_OK