BLooper(const char* name, int32 priority, int32 port_capacity)--------------~BLooper()--------------BLooper(BMessage* data)--------------Instantiate(BMessage* data)--------------Archive(BMessage* data, bool deep) const--------------PostMessage(uint32 command)--------------PostMessage(BMessage* message)--------------PostMessage(uint32 command, BHandler* handler, BHandler* reply_to)--------------PostMessage(BMessage* message, BHandler* handler, BHandler* reply_to);--------------DispatchMessage(BMessage* message, BHandler* handler)--------------MessageReceived(BMessage* msg)--------------CurrentMessage() const--------------DetachCurrentMessage()--------------MessageQueue() const--------------IsMessageWaiting()--------------case 1: looper is unlocked and queue is emptycase 2: looper is unlocked and queue is filledcase 3: looper is locked and queue is emptycase 4: looper is locked and queue is filledcase 5: looper is locked, message is posted, queue is emptiedAddHandler(BHandler* handler);--------------case : handler is NULLcase : looper is unlockedRemoveHandler(BHandler* handler)--------------case 1: handler is NULLcase 2: handler doesn't belong to this loopercase 3: handler is valid, looper is unlockedcase 4: handler doesn't belong to this looper, looper is unlockedcase 5: handler has filters; FilterList() should be NULL on removeCountHandlers() const;--------------case : No handlers addedcase : Several handlers added, then removedHandlerAt(int32 index) const;--------------case 1: No handlers added, check for looper itselfcase 2: Index out of range (CountHandlers() + 1)case 3: Several handlers added, checked against expected indicescase 4: Looper is not lockedIndexOf(BHandler* handler) const;--------------case 1: handler is NULLcase 2: handler is valid, doesn't belong to this loopercase 3: handler is valid, belongs to loopercase 4: handler is valid, one of many added and removedcase 5: handler is valid, looper is unlockedPreferredHandler() const;--------------SetPreferredHandler(BHandler* handler);--------------Run();--------------case 1: Attempt to call Run() twicecase 2: Check Thread() against return of Run()case 3: Delete looper after calling Run()Quit()--------------case 1: Call Quit() on unlocked BLooperQuitRequested()--------------Lock()--------------Unlock()--------------IsLocked() const--------------LockWithTimeout(bigtime_t timeout)--------------Thread() const--------------Team() const--------------LooperForThread(thread_id tid)--------------case 1: tid is validcase 2: tid is not validLockingThread() const--------------CountLocks() const--------------CountLockRequests() const--------------Sem() const--------------ResolveSpecifier(BMessage* msg, int32 index, BMessage* specifier, int32 form, const char* property);--------------GetSupportedSuites(BMessage* data)--------------AddCommonFilter(BMessageFilter* filter)--------------case : NULL filtercase : Valid filter, looper not lockedcase : Valid filter, looper lockedcase : Valid filter, looper locked, owned by another looperRemoveCommonFilter(BMessageFilter* filter)--------------case : NULL filtercase : Valid filter, looper not lockedcase : Valid filter, not owned by loopercase : Valid filter, owned by looperSetCommonFilterList(BList* filters)--------------case : NULL listcase : Valid list, looper not lockedcase : Valid list, looper lockedcase : Valid list, looper locked, owned by another looperCommonFilterList() const--------------case : Default constructed BLooperPerform(perform_code d, void* arg)--------------case 1: returns B_ERROR;