ptterminalconnection.cpp

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

CPP
1,027
字号
        mpEventMgr->release(pe);        EVENT_TRACE("Exiting PtTerminalConnection::playFile\n") ;        return PT_SUCCESS;}PtStatus PtTerminalConnection::stopPlay(UtlBoolean closeFile){        EVENT_TRACE("Entering PtTerminalConnection::stopPlay\n") ;        mpTransactionCnt->add();        unsigned int transactionId = mpTransactionCnt->getRef();        OsProtectedEvent *pe = mpEventMgr->alloc();        TaoMessage      msg(TaoMessage::REQUEST_TERMCONNECTION,                                                                        TaoMessage::STOP_PLAY,                                                                        transactionId,                                                                        0,                                                                        (TaoObjHandle)pe,                                                                        1,                                                                        mCallId);        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::STOP_PLAY);#endif        mpEventMgr->release(pe);        EVENT_TRACE("Exiting PtTerminalConnection::stopPlay\n") ;        return PT_SUCCESS;}  //:Creates a PlayerPtStatus PtTerminalConnection::createPlayer(MpStreamPlayer** pPlayer, const char* szStream, int flags){        EVENT_TRACE("Entering PtTerminalConnection::createPlayer\n") ;   char buff[MAXIMUM_INTEGER_STRING_LENGTH];        mpTransactionCnt->add();        unsigned int transactionId = mpTransactionCnt->getRef();   UtlString args;   sprintf(buff, "%d", (int) pPlayer);   args.append(buff);   args.append(TAOMESSAGE_DELIMITER) ;   args.append(szStream) ;   args.append(TAOMESSAGE_DELIMITER) ;   sprintf(buff, "%d", flags);   args.append(buff);   args.append(TAOMESSAGE_DELIMITER);   args.append(mCallId);        OsProtectedEvent *pe = mpEventMgr->alloc();        TaoMessage      msg(TaoMessage::REQUEST_TERMCONNECTION,                                                                        TaoMessage::CREATE_PLAYER,                                                                        transactionId,                                                                        0,                                                                        (TaoObjHandle)pe,                                                                        4,                                                                        args);        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::CREATE_PLAYER);#endif        mpEventMgr->release(pe);        EVENT_TRACE("Exiting PtTerminalConnection::createPlayer\n") ;        return PT_SUCCESS;}//:Destroys a playerPtStatus PtTerminalConnection::destroyPlayer(MpStreamPlayer* pPlayer){        EVENT_TRACE("Entering PtTerminalConnection::destroyPlayer\n") ;   char buff[MAXIMUM_INTEGER_STRING_LENGTH];        mpTransactionCnt->add();        unsigned int transactionId = mpTransactionCnt->getRef();   UtlString args;   sprintf(buff, "%d", (int) pPlayer);   args.append(buff);   args.append(TAOMESSAGE_DELIMITER) ;   args.append(mCallId);        OsProtectedEvent *pe = mpEventMgr->alloc();        TaoMessage      msg(TaoMessage::REQUEST_TERMCONNECTION,                                                                        TaoMessage::DESTROY_PLAYER,                                                                        transactionId,                                                                        0,                                                                        (TaoObjHandle)pe,                                                                        2,                                                                        args);        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::DESTROY_PLAYER);#endif        mpEventMgr->release(pe);        EVENT_TRACE("Exiting PtTerminalConnection::destroyPlayer\n") ;        return PT_SUCCESS;}//:Creates a playlist PlayerPtStatus PtTerminalConnection::createPlaylistPlayer(MpStreamPlaylistPlayer** pPlayer){        EVENT_TRACE("Entering PtTerminalConnection::createPlaylistPlayer\n") ;   char buff[MAXIMUM_INTEGER_STRING_LENGTH];        mpTransactionCnt->add();        unsigned int transactionId = mpTransactionCnt->getRef();   UtlString args;   sprintf(buff, "%d", (int) pPlayer);   args.append(buff);   args += TAOMESSAGE_DELIMITER + mCallId ;        OsProtectedEvent *pe = mpEventMgr->alloc();        TaoMessage      msg(TaoMessage::REQUEST_TERMCONNECTION,                                                                        TaoMessage::CREATE_PLAYLIST_PLAYER,                                                                        transactionId,                                                                        0,                                                                        (TaoObjHandle)pe,                                                                        2,                                                                        args);        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::CREATE_PLAYLIST_PLAYER);#endif        mpEventMgr->release(pe);        EVENT_TRACE("Exiting PtTerminalConnection::createPlaylistPlayer\n") ;        return PT_SUCCESS;}//:Destroys a playlist playerPtStatus PtTerminalConnection::destroyPlaylistPlayer(MpStreamPlaylistPlayer* pPlayer){        EVENT_TRACE("Entering PtTerminalConnection::destroyPlaylistPlayer\n") ;   char buff[MAXIMUM_INTEGER_STRING_LENGTH];        mpTransactionCnt->add();        unsigned int transactionId = mpTransactionCnt->getRef();   UtlString args;   sprintf(buff, "%d", (int) pPlayer);   args.append(buff);   args.append(TAOMESSAGE_DELIMITER) ;   args.append(mCallId);        OsProtectedEvent *pe = mpEventMgr->alloc();        TaoMessage      msg(TaoMessage::REQUEST_TERMCONNECTION,                                                                        TaoMessage::DESTROY_PLAYLIST_PLAYER,                                                                        transactionId,                                                                        0,                                                                        (TaoObjHandle)pe,                                                                        2,                                                                        args);        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::DESTROY_PLAYLIST_PLAYER);#endif        mpEventMgr->release(pe);        EVENT_TRACE("Exiting PtTerminalConnection::destroyPlaylistPlayer\n") ;        return PT_SUCCESS;}/* ============================ INQUIRY =================================== */PtStatus PtTerminalConnection::isLocal(UtlBoolean& local){        EVENT_TRACE("Entering PtTerminalConnection::isLocal\n") ;        if (mIsLocal != (-1))        {                local = mIsLocal;                EVENT_TRACE("Exiting PtTerminalConnection::isLocal -1\n") ;                return PT_SUCCESS;        }        osPrintf("PtTerminalConnection::isLocal getting status from lower layer....\n");        UtlString arg;        arg = mCallId + TAOMESSAGE_DELIMITER + mAddress + TAOMESSAGE_DELIMITER + mTerminalName;        mpTransactionCnt->add();        unsigned int transactionId = mpTransactionCnt->getRef();        OsProtectedEvent *pe = mpEventMgr->alloc();        TaoMessage      msg(TaoMessage::REQUEST_TERMCONNECTION,                                                                        TaoMessage::IS_LOCAL,                                                                        transactionId,                                                                        0,                                                                        (TaoObjHandle)pe,                                                                        3,                                                                        arg);        mpClient->sendRequest(msg);        if (OS_SUCCESS != pe->wait(msg.getCmd(), mTimeOut))        {                mpClient->resetConnectionSocket(msg.getMsgID());                EVENT_TRACE("Exiting PtTerminalConnection::isLocal 0 \n") ;        // 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(arg);#ifdef PTAPI_TEST        int cmd;        pe->getIntData2(cmd);        assert(cmd == TaoMessage::IS_LOCAL);#endif        mpEventMgr->release(pe);        TaoString argList(arg, TAOMESSAGE_DELIMITER);        int cnt = argList.getCnt();        if (cnt == 3)        {                local = TRUE;        }        else        {                local = FALSE;        }        mIsLocal = local;        osPrintf("PtTerminalConnection::isLocal returned from lower layer %d\n", local);        EVENT_TRACE("Exiting PtTerminalConnection::isLocal 1\n") ;        return PT_SUCCESS;}/* //////////////////////////// PROTECTED ///////////////////////////////// */// Protected ConstructorPtTerminalConnection::PtTerminalConnection(const char* address, const char* terminalName, const char* callId, int isLocal){        mAddress = address;        mTerminalName = terminalName;        mCallId = callId;        mIsLocal = isLocal;        initialize();}/* //////////////////////////// PRIVATE /////////////////////////////////// *//* ============================ FUNCTIONS ================================= */

⌨️ 快捷键说明

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