ptterminal.cpp

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

CPP
1,679
字号
        OsProtectedEvent *pe = mpEventMgr->alloc();        TaoMessage      msg(TaoMessage::REQUEST_TERMINAL,                                                                        TaoMessage::GET_TERM_CONNECTIONS,                                                                        transactionId,                                                                        0, //NULL                                                                        (TaoObjHandle)pe,                                                                        1,                                                                        arg);        mpClient->sendRequest(msg);        if (OS_SUCCESS != pe->wait(msg.getCmd(), mTimeOut))        {                mpClient->resetConnectionSocket(msg.getMsgID());        // If the event has already been signalled, clean up        if(OS_ALREADY_SIGNALED == pe->signal(0))        {            mpEventMgr->release(pe);        }                return PT_BUSY;        }        arg.remove(0);        pe->getStringData((UtlString &)arg);#ifdef PTAPI_TEST        int cmd;        pe->getIntData2(cmd);        assert(cmd == TaoMessage::GET_TERM_CONNECTIONS);#endif        mpEventMgr->release(pe);        TaoString argList(arg, TAOMESSAGE_DELIMITER);        nItems = (argList.getCnt() - 2)/2;        if (nItems < 1)                return PT_NO_MORE_DATA;        int cnt = (nItems > size) ? size : nItems;        nItems = 0;        for (int i = 0; i < cnt; i++)        {                UtlString name = argList[2 * i + 2];                int isLocal = atoi(argList[2 * i + 3]);                PtTerminalConnection tc = PtTerminalConnection(mpClient,                                                                                                        mTerminalName,                                                                                                        name.data(),                                                                                                        mTerminalName,                                                                                                        isLocal);                termConnections[i] = tc;                nItems++;        }        return PT_SUCCESS;}PtStatus PtTerminal::getTerminalListeners(PtTerminalListener aTermListeners[],                                                                                   int size,                                                                                   int& nItems){        if (!mpClient)        {                return PT_NOT_FOUND;        }    char buff[MAXIMUM_INTEGER_STRING_LENGTH];    sprintf(buff, "%d", size);        UtlString arg(buff);        mpTransactionCnt->add();        unsigned int transactionId = mpTransactionCnt->getRef();        OsProtectedEvent *pe = mpEventMgr->alloc();        TaoMessage      msg(TaoMessage::REQUEST_TERMINAL,                                                                        TaoMessage::GET_TERM_LISTENERS,                                                                        transactionId,                                                                        0, //NULL                                                                        (TaoObjHandle)pe,                                                                        1,                                                                        arg);        mpClient->sendRequest(msg);        int rc;        if (OS_SUCCESS != pe->wait(msg.getCmd(), mTimeOut))        {                mpClient->resetConnectionSocket(msg.getMsgID());        // If the event has already been signalled, clean up        if(OS_ALREADY_SIGNALED == pe->signal(0))        {            mpEventMgr->release(pe);        }                return PT_BUSY;        }        pe->getEventData((int &)rc);#ifdef PTAPI_TEST        int cmd;        pe->getIntData2(cmd);        assert(cmd == TaoMessage::GET_TERM_LISTENERS);#endif        mpEventMgr->release(pe);        return PT_SUCCESS;}PtStatus PtTerminal::getProvider(PtProvider& rProvider){        if (!mpClient)        {                return PT_NOT_FOUND;        }        mpTransactionCnt->add();        unsigned int transactionId = mpTransactionCnt->getRef();        OsProtectedEvent *pe = mpEventMgr->alloc();        TaoMessage      msg(TaoMessage::REQUEST_TERMINAL,                                                                        TaoMessage::GET_PROVIDER,                                                                        transactionId,                                                                        0, //NULL                                                                        (TaoObjHandle)pe,                                                                        0,                                                                        "");        mpClient->sendRequest(msg);        int rc;        if (OS_SUCCESS != pe->wait(msg.getCmd(), mTimeOut))        {                mpClient->resetConnectionSocket(msg.getMsgID());        // If the event has already been signalled, clean up        if(OS_ALREADY_SIGNALED == pe->signal(0))        {            mpEventMgr->release(pe);        }                return PT_BUSY;        }        pe->getEventData((int &)rc);#ifdef PTAPI_TEST        int cmd;        pe->getIntData2(cmd);        assert(cmd == TaoMessage::GET_PROVIDER);#endif        mpEventMgr->release(pe);        return PT_SUCCESS;}PtStatus PtTerminal::numAddresses(int& count){        if (!mpClient)        {                return PT_NOT_FOUND;        }        UtlString arg(mTerminalName);        mpTransactionCnt->add();        unsigned int transactionId = mpTransactionCnt->getRef();        OsProtectedEvent *pe = mpEventMgr->alloc();        TaoMessage      msg(TaoMessage::REQUEST_TERMINAL,                                                                        TaoMessage::NUM_ADDRESSES,                                                                        transactionId,                                                                        0, //NULL                                                                        (TaoObjHandle)pe,                                                                        1,                                                                        arg);        mpClient->sendRequest(msg);        if (OS_SUCCESS != pe->wait(msg.getCmd(), mTimeOut))        {                mpClient->resetConnectionSocket(msg.getMsgID());        // If the event has already been signalled, clean up        if(OS_ALREADY_SIGNALED == pe->signal(0))        {            mpEventMgr->release(pe);        }                return PT_BUSY;        }        arg.remove(0);        pe->getStringData((UtlString &)arg);#ifdef PTAPI_TEST        int cmd;        pe->getIntData2(cmd);        assert(cmd == TaoMessage::NUM_ADDRESSES);#endif        mpEventMgr->release(pe);        if (!arg.isNull())                count = atoi(arg);        else                count = 0;        return PT_SUCCESS;}PtStatus PtTerminal::numCallListeners(int& count){        if (!mpClient)        {                return PT_NOT_FOUND;        }        UtlString arg(mTerminalName);        mpTransactionCnt->add();        unsigned int transactionId = mpTransactionCnt->getRef();        OsProtectedEvent *pe = mpEventMgr->alloc();        TaoMessage      msg(TaoMessage::REQUEST_TERMINAL,                                                                        TaoMessage::NUM_CALL_LISTENERS,                                                                        transactionId,                                                                        0, //NULL                                                                        (TaoObjHandle)pe,                                                                        1,                                                                        arg);        mpClient->sendRequest(msg);        if (OS_SUCCESS != pe->wait(msg.getCmd(), mTimeOut))        {                mpClient->resetConnectionSocket(msg.getMsgID());        // If the event has already been signalled, clean up        if(OS_ALREADY_SIGNALED == pe->signal(0))        {            mpEventMgr->release(pe);        }                return PT_BUSY;        }        arg.remove(0);        pe->getStringData((UtlString &)arg);#ifdef PTAPI_TEST        int cmd;        pe->getIntData2(cmd);        assert(cmd == TaoMessage::NUM_CALL_LISTENERS);#endif        mpEventMgr->release(pe);        if (!arg.isNull())                count = atoi(arg);        else                count = 0;        return PT_SUCCESS;}PtStatus PtTerminal::numComponents(int& count){        if (!mpClient)        {                return PT_NOT_FOUND;        }        UtlString arg(mTerminalName);        // record this transaction in the transaction db        mpTransactionCnt->add();        unsigned int transactionId = mpTransactionCnt->getRef();        OsProtectedEvent *pe = mpEventMgr->alloc();        TaoMessage      msg(TaoMessage::REQUEST_TERMINAL,                                                                        TaoMessage::NUM_COMPONENTS,                                                                        transactionId,                                                                        0, //NULL                                                                        (TaoObjHandle)pe,                                                                        1,                                                                        arg);        mpClient->sendRequest(msg);        if (OS_SUCCESS != pe->wait(msg.getCmd(), mTimeOut))        {                mpClient->resetConnectionSocket(msg.getMsgID());        // If the event has already been signalled, clean up        if(OS_ALREADY_SIGNALED == pe->signal(0))        {            mpEventMgr->release(pe);        }                return PT_BUSY;        }        arg.remove(0);        pe->getStringData((UtlString &)arg);#ifdef PTAPI_TEST        int cmd;        pe->getIntData2(cmd);        assert(cmd == TaoMessage::NUM_COMPONENTS);#endif        mpEventMgr->release(pe);        if (!arg.isNull())                count = atoi(arg);        else                count = 0;        return PT_SUCCESS;}PtStatus PtTerminal::numTerminalListeners(int& count){        if (!mpClient)        {                return PT_NOT_FOUND;        }        UtlString arg(mTerminalName);        mpTransactionCnt->add();        unsigned int transactionId = mpTransactionCnt->getRef();        OsProtectedEvent *pe = mpEventMgr->alloc();        TaoMessage      msg(TaoMessage::REQUEST_TERMINAL,                                                                        TaoMessage::NUM_TERM_LISTENERS,                                                                        transactionId,                                                                        0, //NULL                                                                        (TaoObjHandle)pe,                                                                        1,                                                                        arg);        mpClient->sendRequest(msg);        if (OS_SUCCESS != pe->wait(msg.getCmd(), mTimeOut))        {                mpClient->resetConnectionSocket(msg.getMsgID());        // If the event has already been signalled, clean up        if(OS_ALREADY_SIGNALED == pe->signal(0))        {            mpEventMgr->release(pe);        }                return PT_BUSY;        }        arg.remove(0);        pe->getStringData((UtlString &)arg);

⌨️ 快捷键说明

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