本文整理汇总了C++中MessageManager::addListener方法的典型用法代码示例。如果您正苦于以下问题:C++ MessageManager::addListener方法的具体用法?C++ MessageManager::addListener怎么用?C++ MessageManager::addListener使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MessageManager
的用法示例。
在下文中一共展示了MessageManager::addListener方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: main
int main()
{
// A message manager
MessageModule* messageModule = Gnoll::Core::MessageModule::getInstancePtr();
MessageManager* mymanager = messageModule->getMessageManager();
// A message type called "string"
Messages::MessageType mytype("string");
// A listener
shared_ptr<MessageListener> mylistener(new MyMessageListener);
/*
* We add a listner and send some messages
* Each of them are handle by the listener thanks to the message manager
*/
mymanager->addListener ( mylistener, mytype );
cout << "Listener ajoute" << endl;
shared_ptr<boost::any> texte (new boost::any(string("blablabla..."))) ;
shared_ptr<Message> mymessage (new Message(mytype, texte ));
try
{
mymanager->queueMessage(mymessage);
cout << "Message ajoute" << endl;
mymanager->queueMessage(mymessage);
cout << "Message ajoute" << endl;
mymanager->queueMessage(mymessage);
cout << "Message ajoute" << endl;
}
catch(...)
{
}
messageModule->processQueue();
/*
* If the listener is deleted, no one care about the message.
* The message manager rejects the message since there is no listener
* which care about this message type
*/
try
{
mymanager->delListener ( mylistener, mytype );
cout << "Listener supprime" << endl;
mymanager->queueMessage(mymessage);
cout << "Message ajoute" << endl;
}
catch(...)
{
}
messageModule->processQueue();
/*
* We re-add the listener, send some messages and abort all of them.
*/
try
{
mymanager->addListener ( mylistener, mytype );
cout << "Listener ajoute" << endl;
mymanager->queueMessage(mymessage);
cout << "Message ajoute" << endl;
mymanager->queueMessage(mymessage);
cout << "Message ajoute" << endl;
mymanager->abortMessage(mytype, true);
cout << "Message annule" << endl;
}
catch(...)
{
}
messageModule->processQueue();
/*
* The listener is re-deleted and a message is sent
* -> No one cares about this message
*/
try
{
//.........这里部分代码省略.........