void ObservableLooper::MessageReceived( BMessage* message) { // PRINT(( // "### ObservableLooper::MessageReceived()\n")); // message->PrintToStream(); switch(message->what) { case M_ADD_OBSERVER: _handleAddObserver(message); break; case M_REMOVE_OBSERVER: _handleRemoveObserver(message); break; case M_KILL_OBSERVABLE: releaseComplete(); BLooper::Quit(); break; default: _inherited::MessageReceived(message); } }
void ObservableHandler::MessageReceived( BMessage* message) { // PRINT(( // "### ObservableHandler::MessageReceived()\n")); // message->PrintToStream(); switch(message->what) { case M_ADD_OBSERVER: _handleAddObserver(message); break; case M_REMOVE_OBSERVER: _handleRemoveObserver(message); break; case M_KILL_OBSERVABLE: // +++++ this should be an optional feature releaseComplete(); delete this; // BOOM! break; default: _inherited::MessageReceived(message); } }