#include <im.h>
Collaboration diagram for OpalIMManager:
Public Types | |
typedef PNotifierTemplate< OpalIMContext & > | NewConversationNotifier |
Public Member Functions | |
OpalIMManager (OpalManager &manager) | |
~OpalIMManager () | |
OpalIMContext::SentStatus | OnIncomingMessage (OpalIM *im, PString &conversationId, PSafePtr< OpalConnection > conn=NULL) |
void | OnCompositionIndicationTimeout (const PString &conversationId) |
void | AddContext (PSafePtr< OpalIMContext > context) |
void | RemoveContext (OpalIMContext *context) |
void | GarbageCollection () |
PSafePtr< OpalIMContext > | FindContextByIdWithLock (const PString &key, PSafetyMode mode=PSafeReadWrite) |
PSafePtr< OpalIMContext > | FindContextByNamesWithLock (const PString &local, const PString &remote, PSafetyMode mode=PSafeReadWrite) |
PSafePtr< OpalIMContext > | FindContextForMessageWithLock (OpalIM &im, OpalConnection *conn=NULL) |
void | AddNotifier (const NewConversationNotifier ¬ifier, const PString &scheme) |
bool | RemoveNotifier (const NewConversationNotifier ¬ifier, const PString &scheme) |
void | AddWork (IM_Work *work) |
virtual void | InternalOnNewConversation (const PString &conversation) |
virtual void | InternalOnNewIncomingIM (const PString &conversation) |
virtual void | InternalOnMessageSent (const PString &conversation, const OpalIMContext::MessageSentInfo &info) |
virtual void | InternalOnCompositionIndicationTimeout (const PString &conversationId) |
Protected Types | |
typedef PSafeDictionary< PString, OpalIMContext > | ContextsByConversationId |
typedef std::multimap< std::string, PString > | ContextsByNames |
Protected Attributes | |
PQueuedThreadPool< IM_Work > | m_imThreadPool |
PTime | m_lastGarbageCollection |
OpalManager & | m_manager |
bool | m_deleting |
ContextsByConversationId | m_contextsByConversationId |
PMutex | m_contextsByNamesMutex |
ContextsByNames | m_contextsByNames |
PMutex | m_notifierMutex |
PList< NewConversationCallBack > | m_callbacks |
Data Structures | |
class | CompositionIndicationTimeout_Work |
class | IM_Work |
class | MessageSent_Work |
class | NewConversation_Work |
class | NewConversationCallBack |
class | NewIncomingIM_Work |
typedef PSafeDictionary<PString, OpalIMContext> OpalIMManager::ContextsByConversationId [protected] |
typedef std::multimap<std::string, PString> OpalIMManager::ContextsByNames [protected] |
typedef PNotifierTemplate<OpalIMContext &> OpalIMManager::NewConversationNotifier |
OpalIMManager::OpalIMManager | ( | OpalManager & | manager | ) |
OpalIMManager::~OpalIMManager | ( | ) |
void OpalIMManager::AddContext | ( | PSafePtr< OpalIMContext > | context | ) |
void OpalIMManager::AddNotifier | ( | const NewConversationNotifier & | notifier, | |
const PString & | scheme | |||
) |
void OpalIMManager::AddWork | ( | IM_Work * | work | ) |
PSafePtr<OpalIMContext> OpalIMManager::FindContextByIdWithLock | ( | const PString & | key, | |
PSafetyMode | mode = PSafeReadWrite | |||
) |
PSafePtr<OpalIMContext> OpalIMManager::FindContextByNamesWithLock | ( | const PString & | local, | |
const PString & | remote, | |||
PSafetyMode | mode = PSafeReadWrite | |||
) |
PSafePtr<OpalIMContext> OpalIMManager::FindContextForMessageWithLock | ( | OpalIM & | im, | |
OpalConnection * | conn = NULL | |||
) |
void OpalIMManager::GarbageCollection | ( | ) |
virtual void OpalIMManager::InternalOnCompositionIndicationTimeout | ( | const PString & | conversationId | ) | [virtual] |
virtual void OpalIMManager::InternalOnMessageSent | ( | const PString & | conversation, | |
const OpalIMContext::MessageSentInfo & | info | |||
) | [virtual] |
virtual void OpalIMManager::InternalOnNewConversation | ( | const PString & | conversation | ) | [virtual] |
virtual void OpalIMManager::InternalOnNewIncomingIM | ( | const PString & | conversation | ) | [virtual] |
void OpalIMManager::OnCompositionIndicationTimeout | ( | const PString & | conversationId | ) |
OpalIMContext::SentStatus OpalIMManager::OnIncomingMessage | ( | OpalIM * | im, | |
PString & | conversationId, | |||
PSafePtr< OpalConnection > | conn = NULL | |||
) |
void OpalIMManager::RemoveContext | ( | OpalIMContext * | context | ) |
bool OpalIMManager::RemoveNotifier | ( | const NewConversationNotifier & | notifier, | |
const PString & | scheme | |||
) |
PList<NewConversationCallBack> OpalIMManager::m_callbacks [protected] |
ContextsByNames OpalIMManager::m_contextsByNames [protected] |
PMutex OpalIMManager::m_contextsByNamesMutex [protected] |
bool OpalIMManager::m_deleting [protected] |
PQueuedThreadPool<IM_Work> OpalIMManager::m_imThreadPool [protected] |
PTime OpalIMManager::m_lastGarbageCollection [protected] |
OpalManager& OpalIMManager::m_manager [protected] |
PMutex OpalIMManager::m_notifierMutex [protected] |