本文整理汇总了C++中MessageQueue::dispatchMessageObject方法的典型用法代码示例。如果您正苦于以下问题:C++ MessageQueue::dispatchMessageObject方法的具体用法?C++ MessageQueue::dispatchMessageObject怎么用?C++ MessageQueue::dispatchMessageObject使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MessageQueue
的用法示例。
在下文中一共展示了MessageQueue::dispatchMessageObject方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: dispatchMessageObject
bool dispatchMessageObject(const char *queue, Message *msg)
{
MutexHandle mh;
if(msg == NULL)
return true;
msg->addReference();
if(! mh.lock(gDispatchData.mMutex, true))
{
msg->freeReference();
return true;
}
MessageQueue *q = gDispatchData.mQueues.retreive(queue);
if(q == NULL)
{
Con::errorf("Dispatcher::dispatchMessage - Attempting to dispatch to unknown queue '%s'", queue);
msg->freeReference();
return true;
}
// [tom, 8/19/2006] Make sure that the message is registered with the sim, since
// when it's ref count is zero it'll be deleted with deleteObject()
if(! msg->isProperlyAdded())
{
SimObjectId id = Message::getNextMessageID();
if(id != 0xffffffff)
msg->registerObject(id);
else
{
Con::errorf("dispatchMessageObject: Message was not registered and no more object IDs are available for messages");
msg->freeReference();
return false;
}
}
bool bResult = q->dispatchMessageObject(msg);
msg->freeReference();
return bResult;
}