本文整理汇总了C++中TaoMessage::getBytes方法的典型用法代码示例。如果您正苦于以下问题:C++ TaoMessage::getBytes方法的具体用法?C++ TaoMessage::getBytes怎么用?C++ TaoMessage::getBytes使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TaoMessage
的用法示例。
在下文中一共展示了TaoMessage::getBytes方法的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 TaoTransportAgent::send(TaoMessage& rMsg)
{
UtlString buffer;
ssize_t bufferLen;
rMsg.getBytes(&buffer, &bufferLen);
// send the msg to the transport, receive the response
size_t sent = 0;
if (mpSocket->isOk() && (bufferLen > 0))
{
mWriteSem.acquire() ;
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 = mpSocket->write(pBuf, iSendSize) ;
delete pBuf ;
if (sent > (sizeof(uint32_t)*2))
sent -= sizeof(uint32_t)*2 ;
mWriteSem.release() ;
if (sent != length) {
osPrintf("<<**>> TaoTransportAgent WRITE MISMATCH %zu != %u\n", sent, length) ;
sent = 0 ;
}
}
return sent;
}