本文整理汇总了C++中TaoMessage::setSocket方法的典型用法代码示例。如果您正苦于以下问题:C++ TaoMessage::setSocket方法的具体用法?C++ TaoMessage::setSocket怎么用?C++ TaoMessage::setSocket使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TaoMessage
的用法示例。
在下文中一共展示了TaoMessage::setSocket方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: run
int TaoTransportAgent::run(void* runArg)
{
UtlString remoteHostName;
UtlString viaProtocol;
UtlString fromIpAddress;
while (mpSocket && mpSocket->isOk() && !isShuttingDown())
{
char buffer[DEF_TAO_MAX_SOCKET_SIZE];
unsigned long bytesRead;
unsigned long cookie ;
unsigned long length ;
memset(buffer, 0, (DEF_TAO_MAX_SOCKET_SIZE * sizeof(char)));
// Look for our next message, it should start with a '1234ABCD' marker
bytesRead = mpSocket->read((char*) &cookie, sizeof(unsigned long)) ;
while ((bytesRead > 0) && (cookie != 0x1234ABCD)) {
osPrintf("<<**>> Invalid data read from socket, trying to resynchronize...\n") ;
bytesRead = readUntilDone(mpSocket, (char*) &cookie, sizeof(unsigned long)) ;
}
// Okay, now read length
if (bytesRead > 0) {
bytesRead = readUntilDone(mpSocket, (char*) &length, sizeof(unsigned long)) ;
}
// Finally read data
if (bytesRead > 0) {
bytesRead = readUntilDone(mpSocket, buffer, length) ;
if (bytesRead != length) {
osPrintf("<<**>> TaoTransportAgent READ MISMATCH %lu != %lu\n", bytesRead, length) ;
bytesRead = 0 ;
}
}
if(bytesRead > 0)
{
TaoMessage msg = TaoMessage(UtlString(buffer));
msg.setSocket((TaoObjHandle)this); //stores pointer to this class
mpServer->postMessage(msg);
}
else if(bytesRead <= 0 || !mpSocket->isOk())
{
// The socket has gone sour close down the client
mpSocket->getRemoteHostName(&remoteHostName);
osPrintf("Shutting down TaoTransportAgent: %s due to failed socket\n",
remoteHostName.data());
break;
}
}
#ifdef TEST_PRINT
osPrintf("TaoTransportAgent: %s/%s exiting\r\n", remoteHostName.data(),
viaName.data());
#endif
return(0);
}
示例2: handleMessage
UtlBoolean TaoListenerManager::handleMessage(OsMsg& eventMessage)
{
int eventId = ((TaoListenerEventMessage&)eventMessage).getEventId();
OsReadLock lock(mListenerRWLock);
if (mListenerCnt > 0)
{
for (int i = 0; i < mListenerCnt; i++)
{
if (!mpListeners[i] || mpListeners[i]->mpListenerPtr == 0)
continue;
TaoEventListener* pListener = (TaoEventListener*)mpListeners[i]->mpListenerPtr;
if (pListener && pListener->isEventEnabled((PtEvent::PtEventId &)eventId))
{
UtlString rTerminalName;
char buf[128];
if (TAO_SUCCESS == pListener->getTerminalName(buf, 127))
{
TaoObjHandle hSocket;
rTerminalName.append(buf);
if (TAO_NOT_FOUND == mpAgents->findValue(rTerminalName.data(), hSocket))
{
// OsConnectionSocket* pConnectionSocket;
// pConnectionSocket = new OsConnectionSocket(DEF_TAO_EVENT_PORT, rTerminalName.data());
// mpConnectionSockets->insert((const char *)rTerminalName.data(), (TaoObjHandle)pConnectionSocket);
// TaoTransportAgent *pAgent = new TaoTransportAgent(pConnectionSocket, this);
// mpAgents->insert((const char *)rTerminalName.data(), (TaoObjHandle)pAgent);
// hSocket = (TaoObjHandle) pAgent;
return TRUE;
}
int msgType = eventMessage.getMsgType();
int msgSubType = eventMessage.getMsgSubType();
PtEvent::PtEventId eventId = PtEvent::EVENT_INVALID;
TaoMessage* pMsg = NULL;
UtlBoolean bValidEvent = TRUE;
switch(msgType)
{
case OsMsg::TAO_EVENT:
pMsg = new TaoMessage((TaoListenerEventMessage&) eventMessage, hSocket);
break;
case OsMsg::TAO_MSG:
pMsg = new TaoMessage((TaoMessage&)eventMessage);
pMsg->setSocket(hSocket);
break;
case OsMsg::TAO_LISTENER_EVENT_MSG:
{
TaoListenerEventMessage *pEventMsg = (TaoListenerEventMessage*) &eventMessage;
UtlString callId;
UtlString remoteAddress;
pEventMsg->getStringData1(callId);
pEventMsg->getStringData2(remoteAddress);
UtlString arg = callId + TAOMESSAGE_DELIMITER + remoteAddress;
char buf[MAXIMUM_INTEGER_STRING_LENGTH];
sprintf(buf, "%d", msgSubType); // actual event id
arg += TAOMESSAGE_DELIMITER + buf;
pMsg = new TaoMessage(TaoMessage::EVENT,
0,
0,
0,
hSocket,
3,
arg);
}
break;
case OsMsg::PS_MSG:
{
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;
//.........这里部分代码省略.........