本文整理汇总了C++中EventMessage::getEventType方法的典型用法代码示例。如果您正苦于以下问题:C++ EventMessage::getEventType方法的具体用法?C++ EventMessage::getEventType怎么用?C++ EventMessage::getEventType使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类EventMessage
的用法示例。
在下文中一共展示了EventMessage::getEventType方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: HandleMessage
bool Client::HandleMessage(EventMessage &msg, size_t priority)
{
if( // dataPacket
0 == msg.getEventType().compare(PACKET_MSG) )
{
if(HandlePacket(msg, *this->packetData))
return this->HandleMessage(msg, priority); // handle recieved data
else
return this->Peek(msg); // packet discarded, continue peek
}
else
return true;
}
示例2: WaitForEvent
bool Client::WaitForEvent(EventMessage &msg, std::string eventType, unsigned int timeout)
{
namespace pt = boost::posix_time;
message_queue* const mq = (message_queue*)this->privateQueue;
// initialize timer
pt::ptime timeoutInstant;
if(timeout != 0)
{
timeoutInstant = pt::microsec_clock::universal_time() + pt::millisec(timeout);
}
// check local deque for message
if(!this->storedMessages.empty())
{
for (unsigned int i=0; i<this->storedMessages.size(); i++)
{
EventMessage & dequeMsg = this->storedMessages[i];
if( 0 ==dequeMsg.getEventType().compare(eventType) )
{
// copy message to the output
msg = dequeMsg;
// erase message from deque
this->storedMessages.erase(this->storedMessages.begin()+i);
return true;
}
}
}
char buff[MAX_MSG_SIZE];
size_t recvd;
unsigned int priority;
std::stringbuf msgBuffer;
bool gotRequest = false;
while(!gotRequest)
{
// try to get message
if(timeout == 0)
mq->receive(buff, MAX_MSG_SIZE, recvd, priority);
else
{
if(!mq->timed_receive(buff, MAX_MSG_SIZE, recvd, priority, timeoutInstant))
{
// timeout reached
return false;
}
}
// transform buffer into message
msgBuffer.sputn(buff, recvd);
msg.deserialize(msgBuffer);
// check if recieved message has correct type
if( 0 == msg.getEventType().compare(eventType) )
{
gotRequest = true;
}
else
{
// store recieved message into local deque
this->storedMessages.push_back(msg);
}
}
return true;
}