taoaddressadaptor.cpp

来自「基于sipfoundy 公司开发的sipx协议API」· C++ 代码 · 共 1,048 行 · 第 1/3 页

CPP
1,048
字号
        TaoObjHandle clientSocket = rMsg.getSocket();        TaoObjHandle objId = rMsg.getTaoObjHandle();        TaoMessage*     pMsg = new TaoMessage(TaoMessage::RESPONSE_ADDRESS,                                                                        TaoMessage::CANCEL_FORWARDING,                                                                        rMsg.getMsgID(),                                                                        objId,                                                                        clientSocket,                                                                        0,                                                                        "");        delete[] pAddressForwards;        if (mpSvrTransport->postMessage(*pMsg))        {                delete pMsg;                return TAO_SUCCESS;        }        return TAO_FAILURE;}TaoStatus TaoAddressAdaptor::addressGetAddrListeners(TaoMessage& rMsg){        int     argCnt = rMsg.getArgCnt();        if (argCnt != 1)                return TAO_FAILURE;        int nItems = mpAddressListenerDb->numEntries();        int     size   = atoi(rMsg.getArgList());        int actual = ((size < nItems) ? size : nItems);        TaoObjHandle    *pAddressListeners;        pAddressListeners = new TaoObjHandle[nItems];        mpAddressListenerDb->getActiveObjects(pAddressListeners, nItems);        UtlString       argList;    char buff[MAXIMUM_INTEGER_STRING_LENGTH];        for (int i = 0; i < actual; i++)        {                sprintf(buff, "%d", (int)pAddressListeners[i]);                argList += (UtlString) buff;                if (i < (actual - 1))                {                        argList += TAOMESSAGE_DELIMITER;                }        }        TaoObjHandle clientSocket = rMsg.getSocket();        TaoMessage*     pMsg = new TaoMessage(TaoMessage::RESPONSE_ADDRESS,                                                                        TaoMessage::GET_ADDRESS_LISTENERS,                                                                        rMsg.getMsgID(),                                                                        nItems,                                                                        clientSocket,                                                                        actual,                                                                        argList);        if (mpSvrTransport->postMessage(*pMsg))        {                delete pMsg;                return TAO_SUCCESS;        }        return TAO_FAILURE;}TaoStatus TaoAddressAdaptor::addressGetCallListeners(TaoMessage& rMsg){        int     argCnt = rMsg.getArgCnt();        if (argCnt != 1)                return TAO_FAILURE;        int nItems = mpCallListenerDb->numEntries();        int     size   = atoi(rMsg.getArgList());        int actual = ((size < nItems) ? size : nItems);        TaoObjHandle    *pCallListeners;        pCallListeners = new TaoObjHandle[nItems];        mpCallListenerDb->getActiveObjects(pCallListeners, nItems);        UtlString       argList;    char buff[MAXIMUM_INTEGER_STRING_LENGTH];        for (int i = 0; i < actual; i++)        {                sprintf(buff, "%d", (int)pCallListeners[i]);                argList += (UtlString) buff;                if (i < (actual - 1))                {                        argList += TAOMESSAGE_DELIMITER;                }        }        TaoObjHandle clientSocket = rMsg.getSocket();        TaoMessage*     pMsg = new TaoMessage(TaoMessage::RESPONSE_ADDRESS,                                                                        TaoMessage::GET_CALL_LISTENERS,                                                                        rMsg.getMsgID(),                                                                        nItems,                                                                        clientSocket,                                                                        actual,                                                                        argList);        if (mpSvrTransport->postMessage(*pMsg))        {                delete pMsg;                return TAO_SUCCESS;        }        return TAO_FAILURE;}TaoStatus TaoAddressAdaptor::addressGetConnections(TaoMessage& rMsg){        int     argCnt = rMsg.getArgCnt();        if (argCnt != 1)                return TAO_FAILURE;        int nItems = mpConnectionDb->numEntries();        int     size   = atoi(rMsg.getArgList());        int actual = ((size < nItems) ? size : nItems);        TaoObjHandle    *pConnections;        pConnections = new TaoObjHandle[nItems];        mpConnectionDb->getActiveObjects(pConnections, nItems);        UtlString       argList;    char buff[MAXIMUM_INTEGER_STRING_LENGTH];        for (int i = 0; i < actual; i++)        {                sprintf(buff, "%d", (int)pConnections[i]);                argList += (UtlString) buff;                if (i < (actual - 1))                {                        argList += TAOMESSAGE_DELIMITER;                }        }        TaoObjHandle clientSocket = rMsg.getSocket();        TaoMessage*     pMsg = new TaoMessage(TaoMessage::RESPONSE_ADDRESS,                                                                        TaoMessage::GET_CONNECTIONS,                                                                        rMsg.getMsgID(),                                                                        nItems,                                                                        clientSocket,                                                                        actual,                                                                        argList);        if (mpSvrTransport->postMessage(*pMsg))        {                delete pMsg;                return TAO_SUCCESS;        }        return TAO_FAILURE;}TaoStatus TaoAddressAdaptor::addressGetDoNotDisturb(TaoMessage& rMsg){        int     argCnt = rMsg.getArgCnt();        if (argCnt != 1)                return TAO_FAILURE;        TaoObjHandle clientSocket = rMsg.getSocket();        rMsg.getTaoObjHandle();        TaoObjHandle rTerminal = 0x00000099;    // fake        TaoMessage*     pMsg = new TaoMessage(TaoMessage::RESPONSE_ADDRESS,                                                                        TaoMessage::GET_DONOT_DISTURB,                                                                        rMsg.getMsgID(),                                                                        rTerminal,                                                                        clientSocket,                                                                        0,                                                                        "");        if (mpSvrTransport->postMessage(*pMsg))        {                delete pMsg;                return TAO_SUCCESS;        }        return TAO_FAILURE;}TaoStatus TaoAddressAdaptor::addressGetForwarding(TaoMessage& rMsg){        rMsg.setMsgSubType(TaoMessage::RESPONSE_ADDRESS);        if (mpSvrTransport->postMessage(rMsg))        {                return TAO_SUCCESS;        }        return TAO_FAILURE;}TaoStatus TaoAddressAdaptor::addressGetMsgWaiting(TaoMessage& rMsg){        int     argCnt = rMsg.getArgCnt();        if (argCnt != 1)                return TAO_FAILURE;        TaoObjHandle clientSocket = rMsg.getSocket();        rMsg.getTaoObjHandle();        TaoObjHandle rTerminal = 0x00000099;    // fake        TaoMessage*     pMsg = new TaoMessage(TaoMessage::RESPONSE_ADDRESS,                                                                        TaoMessage::GET_MESSAGE_WAITING,                                                                        rMsg.getMsgID(),                                                                        rTerminal,                                                                        clientSocket,                                                                        0,                                                                        "");        if (mpSvrTransport->postMessage(*pMsg))        {                delete pMsg;                return TAO_SUCCESS;        }        return TAO_FAILURE;}TaoStatus TaoAddressAdaptor::addressGetName(TaoMessage& rMsg){        int     argCnt = rMsg.getArgCnt();        if (argCnt != 0)                return TAO_FAILURE;        TaoObjHandle clientSocket = rMsg.getSocket();        TaoObjHandle objId = rMsg.getTaoObjHandle();        TaoMessage*     pMsg = new TaoMessage(TaoMessage::RESPONSE_ADDRESS,                                                                        TaoMessage::GET_NAME,                                                                        rMsg.getMsgID(),                                                                        objId,                                                                        clientSocket,                                                                        1,                                                                        mName);        if (mpSvrTransport->postMessage(*pMsg))        {                delete pMsg;                return TAO_SUCCESS;        }        return TAO_FAILURE;}TaoStatus TaoAddressAdaptor::addressGetOfferedTimeout(TaoMessage& rMsg){        int     argCnt = rMsg.getArgCnt();        if (argCnt != 0)                return TAO_FAILURE;        TaoObjHandle clientSocket = rMsg.getSocket();        rMsg.getTaoObjHandle();        TaoObjHandle rTerminal = 0x00000099;    // fake        TaoMessage*     pMsg = new TaoMessage(TaoMessage::RESPONSE_ADDRESS,                                                                        TaoMessage::GET_OFFERED_TIMEOUT,                                                                        rMsg.getMsgID(),                                                                        rTerminal,                                                                        clientSocket,                                                                        0,                                                                        "");        if (mpSvrTransport->postMessage(*pMsg))        {                delete pMsg;                return TAO_SUCCESS;        }        return TAO_FAILURE;}TaoStatus TaoAddressAdaptor::addressGetTerminals(TaoMessage& rMsg){        int     argCnt = rMsg.getArgCnt();        if (argCnt != 1)                return TAO_FAILURE;        int nItems = mpTerminalDb->numEntries();        int     size   = atoi(rMsg.getArgList());        int actual = ((size < nItems) ? size : nItems);        TaoObjHandle    *pTerminals;        pTerminals = new TaoObjHandle[nItems];        mpTerminalDb->getActiveObjects(pTerminals, nItems);        UtlString       argList;    char buff[MAXIMUM_INTEGER_STRING_LENGTH];        for (int i = 0; i < actual; i++)        {                sprintf(buff, "%d", (int)pTerminals[i]);                argList += (UtlString) buff;                if (i < (actual - 1))                {                        argList += TAOMESSAGE_DELIMITER;                }        }        TaoObjHandle clientSocket = rMsg.getSocket();        TaoMessage*     pMsg = new TaoMessage(TaoMessage::RESPONSE_ADDRESS,                                                                        TaoMessage::GET_TERMINALS,                                                                        rMsg.getMsgID(),                                                                        nItems,                                                                        clientSocket,                                                                        actual,                                                                        argList);        if (mpSvrTransport->postMessage(*pMsg))        {                delete pMsg;                return TAO_SUCCESS;        }        return TAO_FAILURE;}TaoStatus TaoAddressAdaptor::addressGetProvider(TaoMessage& rMsg){        int     argCnt = rMsg.getArgCnt();        if (argCnt != 1)                return TAO_FAILURE;        TaoObjHandle clientSocket = rMsg.getSocket();        rMsg.getTaoObjHandle();        TaoMessage*     pMsg = new TaoMessage(TaoMessage::RESPONSE_ADDRESS,

⌨️ 快捷键说明

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