bool TelepathyAccountHandler::disconnect() { UT_DEBUGMSG(("TelepathyAccountHandler::disconnect()\n")); UT_return_val_if_fail(m_pTpClient, false); AbiCollabSessionManager* pManager = AbiCollabSessionManager::getManager(); UT_return_val_if_fail(pManager, false); // unregister as a telepathy client tp_base_client_unregister(m_pTpClient); m_pTpClient = NULL; // tear down all active rooms for (std::vector<TelepathyChatroomPtr>::iterator it = m_chatrooms.begin(); it != m_chatrooms.end(); it++) (*it)->stop(); // we are disconnected now, no need to receive events anymore pManager->unregisterEventListener(this); // signal all listeners we are logged out AccountOfflineEvent event; AbiCollabSessionManager::getManager()->signal(event); return true; }
bool XMPPAccountHandler::disconnect() { UT_DEBUGMSG(("XMPPAccountHandler::disconnect()\n")); AbiCollabSessionManager* pManager = AbiCollabSessionManager::getManager(); UT_return_val_if_fail(pManager, false); // we are disconnected now, no need to receive events anymore pManager->unregisterEventListener(this); tearDown(); // signal all listeners we are logged out AccountOfflineEvent event; // TODO: fill the event AbiCollabSessionManager::getManager()->signal(event); return true; }
bool TCPAccountHandler::disconnect() { UT_DEBUGMSG(("TCPAccountHandler::disconnect()\n")); if (!m_bConnected) return true; AbiCollabSessionManager* pManager = AbiCollabSessionManager::getManager(); UT_return_val_if_fail(pManager, false); _teardownAndDestroyHandler(); m_bConnected = false; // signal all listeners we are logged out AccountOfflineEvent event; // TODO: fill the event AbiCollabSessionManager::getManager()->signal(event); // we are disconnected now, no need to sent out messages (such as events) anymore pManager->unregisterEventListener(this); return true; }