本文整理汇总了C++中TaoMessage::getMsgSubType方法的典型用法代码示例。如果您正苦于以下问题:C++ TaoMessage::getMsgSubType方法的具体用法?C++ TaoMessage::getMsgSubType怎么用?C++ TaoMessage::getMsgSubType使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TaoMessage
的用法示例。
在下文中一共展示了TaoMessage::getMsgSubType方法的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: send
int TaoTransportTask::send(TaoMessage& rMsg)
{
unsigned int type = rMsg.getMsgSubType();
unsigned int cmd = rMsg.getCmd();
if ((TaoMessage::RESPONSE_PROVIDER == type) && (cmd == TaoMessage::SHUTDOWN))
{
TaoTransportAgent* pAgent = (TaoTransportAgent *) rMsg.getSocket();
mpTaoListeningTask->shutdownAgent(pAgent);
return 0;
}
// record this transaction in the transaction db
rMsg.getMsgID();
mpTransactionCnt->add();
mpTransactionCnt->getRef();
TaoObjHandle remoteServer = rMsg.getMsgQueueHandle();
if (mClientHandle)
{
((OsServerTask *) mClientHandle)->postMessage(rMsg);
return 1;
}
else if (remoteServer)
{
((OsServerTask *) remoteServer)->postMessage(rMsg);
return 1;
}
// send the msg to the transport, receive the response
int sent = 0;
TaoTransportAgent* pAgent = (TaoTransportAgent *) rMsg.getSocket();
if (pAgent && !pAgent->isShuttingDown())
{
sent = pAgent->send(rMsg);
}
return sent;
}