⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 taoprovideradaptor.cpp

📁 基于sipfoundy 公司开发的sipx协议API
💻 CPP
📖 第 1 页 / 共 2 页
字号:
        if (argCnt != 1)                return TAO_FAILURE;        UtlString argList = "localterminal" ;        TaoObjHandle clientSocket = rMsg.getSocket();        TaoMessage*     pMsg = new TaoMessage(TaoMessage::RESPONSE_PROVIDER,                                                                        TaoMessage::GET_TERMINALS,                                                                        rMsg.getMsgID(),                                                                        1,                                                                        clientSocket,                                                                        1,                                                                        argList);        if (mpSvrTransport->postMessage(*pMsg))        {                delete pMsg;                return TAO_SUCCESS;        }        return TAO_FAILURE;}TaoStatus TaoProviderAdaptor::providerCreateCall(TaoMessage& rMsg){        int     argCnt = rMsg.getArgCnt();        if (argCnt != 0)                return TAO_FAILURE;        UtlString callId;        if (mState == PtProvider::IN_SERVICE)        {                mpCallMgrTask->createCall(&callId);                argCnt = 1;        }        else        {                rMsg.setMsgSubType(TaoMessage::RESPONSE_PROVIDER);                argCnt = 0;        }        TaoObjHandle clientSocket = rMsg.getSocket();        TaoMessage*     pMsg = new TaoMessage(TaoMessage::RESPONSE_PROVIDER,                                                                        TaoMessage::CREATE_CALL,                                                                        rMsg.getMsgID(),                                                                        rMsg.getTaoObjHandle(),                                                                        clientSocket,                                                                        argCnt,                                                                        callId);        if (mpSvrTransport->postMessage(*pMsg))        {                delete pMsg;                return TAO_SUCCESS;        }        return TAO_FAILURE;}TaoStatus TaoProviderAdaptor::getCreateCall(TaoMessage& rMsg){        int     argCnt = rMsg.getArgCnt();        if (argCnt != 0)                return TAO_FAILURE;        TaoObjHandle  clientSocket = rMsg.getSocket();        UtlString callId;        int objId = rMsg.getTaoObjHandle();        mpCallDb->insert(mpCallCnt->add(), objId);        TaoMessage*     pMsg = new TaoMessage(TaoMessage::RESPONSE_PROVIDER,                                                                        TaoMessage::CREATE_CALL,                                                                        rMsg.getMsgID(),                                                                        objId,                                                                        clientSocket,                                                                        0,                                                                        "");        if (mpSvrTransport->postMessage(*pMsg))        {                delete pMsg;                return TAO_SUCCESS;        }        return TAO_FAILURE;}TaoStatus TaoProviderAdaptor::providerGetCalls(TaoMessage& rMsg){        int     argCnt = rMsg.getArgCnt();        if (argCnt != 1)                return TAO_FAILURE;        int nItems = mpCallCnt->getRef();        int     size   = atoi(rMsg.getArgList());        int actual = ((size < nItems) ? size : nItems);        TaoObjHandle    *pCalls;        pCalls = new TaoObjHandle[nItems];        mpCallDb->getActiveObjects(pCalls, nItems);        UtlString argList;        UtlString rNextKey;        UtlString rNextValue;    char buff[MAXIMUM_INTEGER_STRING_LENGTH];        for (int i = 0; i < actual; i++)        {                sprintf(buff, "%d", (int)pCalls[i]);                argList += (UtlString) buff;                if (i < (actual - 1))                {                        argList += TAOMESSAGE_DELIMITER;                }        }        TaoObjHandle clientSocket = rMsg.getSocket();        TaoMessage*     pMsg = new TaoMessage(TaoMessage::RESPONSE_PROVIDER,                                                                        TaoMessage::GET_ADDRESSES,                                                                        rMsg.getMsgID(),                                                                        nItems,                                                                        clientSocket,                                                                        actual,                                                                        argList);        if (mpSvrTransport->postMessage(*pMsg))        {                delete pMsg;                return TAO_SUCCESS;        }        return TAO_FAILURE;}TaoStatus TaoProviderAdaptor::providerGetState(TaoMessage& rMsg){        int     argCnt = rMsg.getArgCnt();        if (argCnt != 0)                return TAO_FAILURE;        TaoObjHandle clientSocket = rMsg.getSocket();        TaoMessage*     pMsg = new TaoMessage(TaoMessage::RESPONSE_PROVIDER,                                                                        TaoMessage::GET_STATE,                                                                        rMsg.getMsgID(),                                                                        mState,                                                                        clientSocket,                                                                        0,                                                                        "");        if (mpSvrTransport->postMessage(*pMsg))        {                delete pMsg;                return TAO_SUCCESS;        }        return TAO_FAILURE;}TaoStatus TaoProviderAdaptor::providerAddProviderListener(TaoMessage& rMsg){        int     argCnt = rMsg.getArgCnt();        if (argCnt != 2)                return TAO_FAILURE;        TaoObjHandle clientSocket = rMsg.getSocket();        rMsg.getMsgID();        TaoObjHandle objHdl = rMsg.getTaoObjHandle();        TaoString        argList(rMsg.getArgList(), TAOMESSAGE_DELIMITER);        UtlString        sProviderListener =  argList[0];        UtlString        sTerminalName =  argList[1];        if (mObjId)        {                int objId = atoi(sProviderListener);                TaoProviderListener *pListener;                pListener = new TaoProviderListener(objId, clientSocket, mpSvrTransport, sTerminalName);                objId = mpProviderListenerCnt->add();                mpProviderListenerDb->insert((TaoObjHandle)objId, (TaoObjHandle)pListener);        }        TaoMessage*     pMsg = new TaoMessage(TaoMessage::RESPONSE_PROVIDER,                                                                        TaoMessage::ADD_PROVIDER_LISTENER,                                                                        rMsg.getMsgID(),                                                                        objHdl,                                                                        clientSocket,                                                                        0,                                                                        "");        if (mpSvrTransport->postMessage(*pMsg))        {                delete pMsg;                return TAO_SUCCESS;        }        return TAO_FAILURE;}TaoStatus TaoProviderAdaptor::providerRemoveProviderListener(TaoMessage& rMsg){        int     argCnt = rMsg.getArgCnt();        if (argCnt != 1)                return TAO_FAILURE;        TaoObjHandle clientSocket = rMsg.getSocket();        TaoObjHandle objId = rMsg.getTaoObjHandle();//////////////        TaoMessage*     pMsg = new TaoMessage(TaoMessage::RESPONSE_PROVIDER,                                                                        TaoMessage::REMOVE_PROVIDER_LISTENER,                                                                        rMsg.getMsgID(),                                                                        objId,                                                                        clientSocket,                                                                        0,                                                                        "");        if (mpSvrTransport->postMessage(*pMsg))        {                delete pMsg;                return TAO_SUCCESS;        }        return TAO_FAILURE;}TaoStatus TaoProviderAdaptor::providerGetProviderListeners(TaoMessage& rMsg){        int     argCnt = rMsg.getArgCnt();        if (argCnt != 1)                return TAO_FAILURE;        int nItems = mpProviderListenerCnt->getRef();        int     size   = atoi(rMsg.getArgList());        int actual = ((size < nItems) ? size : nItems);        TaoObjHandle    *pProviderListeners;        pProviderListeners = new TaoObjHandle[nItems];        mpProviderListenerDb->getActiveObjects(pProviderListeners, nItems);        UtlString argList;        UtlString rNextKey;        UtlString rNextValue;    char buff[MAXIMUM_INTEGER_STRING_LENGTH];        for (int i = 0; i < actual; i++)        {                sprintf(buff, "%d", (int)pProviderListeners[i]);                argList += (UtlString) buff;                if (i < (actual - 1))                {                        argList += TAOMESSAGE_DELIMITER;                }        }        TaoObjHandle clientSocket = rMsg.getSocket();        TaoMessage*     pMsg = new TaoMessage(TaoMessage::RESPONSE_PROVIDER,                                                                        TaoMessage::GET_PROVIDER_LISTENERS,                                                                        rMsg.getMsgID(),                                                                        nItems,                                                                        clientSocket,                                                                        actual,                                                                        argList);        if (mpSvrTransport->postMessage(*pMsg))        {                delete pMsg;                return TAO_SUCCESS;        }        return TAO_FAILURE;}TaoStatus TaoProviderAdaptor::providerNumAddresses(TaoMessage& rMsg){        int     argCnt = rMsg.getArgCnt();        if (argCnt != 0)                return TAO_FAILURE;        TaoObjHandle clientSocket = rMsg.getSocket();        rMsg.getTaoObjHandle();        int count = 1;        TaoMessage*     pMsg = new TaoMessage(TaoMessage::RESPONSE_PROVIDER,                                                                        TaoMessage::NUM_ADDRESSES,                                                                        rMsg.getMsgID(),                                                                        count,                                                                        clientSocket,                                                                        0,                                                                        "");        if (mpSvrTransport->postMessage(*pMsg))        {                delete pMsg;                return TAO_SUCCESS;        }        return TAO_FAILURE;}TaoStatus TaoProviderAdaptor::providerNumTerminals(TaoMessage& rMsg){        int     argCnt = rMsg.getArgCnt();        if (argCnt != 0)                return TAO_FAILURE;        TaoObjHandle clientSocket = rMsg.getSocket();        rMsg.getTaoObjHandle();        int count = 1 ;        TaoMessage*     pMsg = new TaoMessage(TaoMessage::RESPONSE_PROVIDER,                                                                        TaoMessage::NUM_TERMINALS,                                                                        rMsg.getMsgID(),                                                                        count,                                                                        clientSocket,                                                                        0,                                                                        "");        if (mpSvrTransport->postMessage(*pMsg))        {                delete pMsg;                return TAO_SUCCESS;        }        return TAO_FAILURE;}TaoStatus TaoProviderAdaptor::providerNumCalls(TaoMessage& rMsg){        int     argCnt = rMsg.getArgCnt();        if (argCnt != 0)                return TAO_FAILURE;        TaoObjHandle clientSocket = rMsg.getSocket();        rMsg.getTaoObjHandle();        int count = mpCallCnt->getRef();        TaoMessage*     pMsg = new TaoMessage(TaoMessage::RESPONSE_PROVIDER,                                                                        TaoMessage::NUM_CALLS,                                                                        rMsg.getMsgID(),                                                                        count,                                                                        clientSocket,                                                                        0,                                                                        "");        if (mpSvrTransport->postMessage(*pMsg))        {                delete pMsg;                return TAO_SUCCESS;        }        return TAO_FAILURE;}TaoStatus TaoProviderAdaptor::providerNumProviderListeners(TaoMessage& rMsg){        int     argCnt = rMsg.getArgCnt();        if (argCnt != 0)                return TAO_FAILURE;        TaoObjHandle clientSocket = rMsg.getSocket();        rMsg.getTaoObjHandle();        int count = mpProviderListenerCnt->getRef();        TaoMessage*     pMsg = new TaoMessage(TaoMessage::RESPONSE_PROVIDER,                                                                        TaoMessage::NUM_PROVIDER_LISTENERS,                                                                        rMsg.getMsgID(),                                                                        count,                                                                        clientSocket,                                                                        0,                                                                        "");        if (mpSvrTransport->postMessage(*pMsg))        {                delete pMsg;                return TAO_SUCCESS;        }        return TAO_FAILURE;}TaoStatus TaoProviderAdaptor::providerShutdown(TaoMessage& rMsg){        int     argCnt = rMsg.getArgCnt();        if (argCnt != 0)                return TAO_FAILURE;        TaoObjHandle clientSocket = rMsg.getSocket();        TaoObjHandle objId = rMsg.getTaoObjHandle();/////////////////////      mState = SHUT_DOWN;        TaoMessage*     pMsg = new TaoMessage(TaoMessage::RESPONSE_PROVIDER,                                                                        TaoMessage::SHUTDOWN,                                                                        rMsg.getMsgID(),                                                                        objId,                                                                        clientSocket,                                                                        0,                                                                        "");        osPrintf("==== TaoProviderAdaptor::providerShutdown %d\n", objId);        if (mpSvrTransport->postMessage(*pMsg))        {                delete pMsg;                return TAO_SUCCESS;        }        return TAO_FAILURE;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -