本文整理汇总了C++中TaoMessage::setMsgQueueHandle方法的典型用法代码示例。如果您正苦于以下问题:C++ TaoMessage::setMsgQueueHandle方法的具体用法?C++ TaoMessage::setMsgQueueHandle怎么用?C++ TaoMessage::setMsgQueueHandle使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TaoMessage
的用法示例。
在下文中一共展示了TaoMessage::setMsgQueueHandle方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: sendRequest
int TaoClientTask::sendRequest(TaoMessage& rMsg, OsMutex* pMutex, const OsTime& rTimeout)
{
if (mpTaoServerTask)
{
rMsg.setMsgQueueHandle((TaoObjHandle) this);
mpTaoServerTask->postMessage(rMsg);
return 1;
}
else
{
osPrintf("\n++++++ TaoClientTask::sendRequest mpTaoServerTask = 0x%p +++++\n", mpTaoServerTask);
osPrintf("\n++++++ %d %d +++++\n", rMsg.getMsgSubType(), rMsg.getCmd());
}
osPrintf("\n++++++ TaoClientTask::sendRequest %p %s : %d+++++\n", mpConnectionSocket, mRemoteHost.data(), mRemotePort);
if (!mpConnectionSocket)
{
mMutex.acquireWrite();
mpConnectionSocket = new OsConnectionSocket(mRemotePort, mRemoteHost);
if (mpAgent)
{
delete mpAgent;
}
mpAgent = new TaoTransportAgent(mpConnectionSocket, this);
mpAgent->start();
mMutex.releaseWrite();
}
int recvd = 0;
if (mpConnectionSocket && mpConnectionSocket->isOk())
{
unsigned int sent;
mMutex.acquireWrite();
UtlString buffer;
ssize_t bufferLen;
rMsg.getBytes(&buffer, &bufferLen);
size_t iSendSize = bufferLen + (sizeof(uint32_t)*2) ;
char* pBuf = new char[iSendSize] ;
uint32_t cookie = 0x1234ABCD ;
uint32_t length = bufferLen ;
memcpy(&pBuf[0], &cookie, sizeof(uint32_t)) ;
memcpy(&pBuf[sizeof(uint32_t)], &length, sizeof(uint32_t)) ;
memcpy(&pBuf[sizeof(uint32_t)*2], buffer.data(), bufferLen) ;
sent = mpConnectionSocket->write(pBuf, iSendSize) ;
delete pBuf ;
if (sent > sizeof(uint32_t)*2)
sent -= sizeof(uint32_t)*2 ;
mMutex.releaseWrite();
}
return recvd;
}
示例2: handleMessage
//.........这里部分代码省略.........
{
PsMsg msg = (PsMsg&)eventMessage;
int hookType = msg.getParam1();
int key = msg.getParam2();
UtlString param;
msg.getStringParam1(param);
switch(msgSubType)
{
case PsMsg::EXTSPEAKER_CONNECT:
eventId = PtEvent::PHONE_EXTSPEAKER_CONNECTED;
break;
case PsMsg::EXTSPEAKER_DISCONNECT:
eventId = PtEvent::PHONE_EXTSPEAKER_DISCONNECTED;
break;
case PsMsg::BUTTON_DOWN:
eventId = PtEvent::PHONE_BUTTON_DOWN;
break;
case PsMsg::BUTTON_UP:
eventId = PtEvent::PHONE_BUTTON_UP;
break;
case PsMsg::BUTTON_SET_INFO:
eventId = PtEvent::PHONE_BUTTON_INFO_CHANGED;
break;
case PsMsg::BUTTON_REPEAT:
eventId = PtEvent::PHONE_BUTTON_REPEAT;
break;
case PsMsg::HOOKSW_STATE:
case PsMsg::HOOKSW_SET_STATE:
if(hookType == PsHookswTask::OFF_HOOK)
{
eventId = PtEvent::PHONE_HOOKSWITCH_OFFHOOK;
}
else if( hookType == PsHookswTask::ON_HOOK)
{
eventId = PtEvent::PHONE_HOOKSWITCH_ONHOOK;
}
break;
case PsMsg::HANDSET_SET_VOLUME:
eventId = PtEvent::PHONE_HANDSET_VOLUME_CHANGED;
break;
case PsMsg::RINGER_SET_VOLUME:
eventId = PtEvent::PHONE_RINGER_VOLUME_CHANGED;
break;
case PsMsg::SPEAKER_SET_VOLUME:
eventId = PtEvent::PHONE_SPEAKER_VOLUME_CHANGED;
break;
default:
bValidEvent = FALSE;
break;
}
if (bValidEvent)
{
UtlString arg;
char buf[MAXIMUM_INTEGER_STRING_LENGTH];
sprintf(buf, "%d", hookType);
arg = buf + TAOMESSAGE_DELIMITER;
sprintf(buf, "%d", key);
arg += buf + TAOMESSAGE_DELIMITER;
arg += rTerminalName + TAOMESSAGE_DELIMITER + param;
pMsg = new TaoMessage(TaoMessage::EVENT,
0,
0,
eventId,
hSocket,
4,
arg);
}
}
break;
default:
bValidEvent = FALSE;
break;
}
if (bValidEvent)
{
pMsg->setMsgQueueHandle(mEventClient);
if (mEventClient)
((TaoListenerClientTask*) mEventClient)->postMessage((TaoMessage&)(*pMsg));
else
{
assert(FALSE);
mpSvrTransport->postMessage((TaoMessage&)(*pMsg));
}
delete pMsg;
}
}
rTerminalName.remove(0);
}
}
}
return(TRUE);
}