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 + -
显示快捷键?