当前位置: 首页>>代码示例>>C++>>正文


C++ MessageManager::queueMessage方法代码示例

本文整理汇总了C++中MessageManager::queueMessage方法的典型用法代码示例。如果您正苦于以下问题:C++ MessageManager::queueMessage方法的具体用法?C++ MessageManager::queueMessage怎么用?C++ MessageManager::queueMessage使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在MessageManager的用法示例。


在下文中一共展示了MessageManager::queueMessage方法的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
	{
//.........这里部分代码省略.........
开发者ID:leirbag,项目名称:Gnoll,代码行数:101,代码来源:testmsg.cpp


注:本文中的MessageManager::queueMessage方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。