当前位置: 首页>>代码示例>>C++>>正文


C++ TaoMessage::setMsgQueueHandle方法代码示例

本文整理汇总了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;
}
开发者ID:ATHLSolutions,项目名称:sipxecs,代码行数:59,代码来源:TaoClientTask.cpp

示例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);
}
开发者ID:John-Chan,项目名称:sipXtapi,代码行数:101,代码来源:TaoListenerManager.cpp


注:本文中的TaoMessage::setMsgQueueHandle方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。