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

📄 taoterminaladaptor.cpp

📁 基于sipfoundy 公司开发的sipx协议API
💻 CPP
📖 第 1 页 / 共 3 页
字号:
//// Copyright (C) 2004, 2005 Pingtel Corp.// //// $$//////////////////////////////////////////////////////////////////////////////#include <assert.h>#ifdef TEST#include "utl/UtlMemCheck.h"#endif#ifdef __pingtel_on_posix__#include <stdlib.h>#endif#include "tao/TaoTerminalAdaptor.h"#include "tao/TaoTransportTask.h"#include "tao/TaoString.h"#include "tao/TaoListenerManager.h"#include "ps/PsMsg.h"#include "ps/PsPhoneTask.h"#include "cp/CpCallManager.h"#ifdef _WIN32#  define CONFIG_PREFIX_USER_DATA               "..\\meta\\"#  define CONFIG_PREFIX_SHARED_DATA             "..\\meta\\"#  define CONFIG_FILE_NAME CONFIG_PREFIX_USER_DATA "pinger-config"#else#  define CONFIG_FILE_NAME "pinger-config"#endif#define CONFIG_FILE_NAME_IN_FLASH "/flash0/pinger-config"//////////////////////////////////////////////////////////////////////// Construction/Destruction//////////////////////////////////////////////////////////////////////TaoTerminalAdaptor::TaoTerminalAdaptor(CpCallManager *pCallMgr,                                           PsPhoneTask *pPhoneTask,                                           TaoTransportTask*& rpSvrTransport,                                           TaoListenerManager* pListenerMgr,                                           TaoMessage& rMsg,                                           const UtlString& name,                                           const int maxRequestQMsgs)        : TaoAdaptor(name, maxRequestQMsgs),        mpCallMgrTask(pCallMgr){        mpSvrTransport = rpSvrTransport;        mpPhoneTask = pPhoneTask;        mpListenerMgr = pListenerMgr;        parseMessage(rMsg);        mpObjectDb  = new TaoObjectMap();        mpObjectCnt = new TaoReference();   const char* configFileName =#ifdef _VXWORKS   CONFIG_FILE_NAME_IN_FLASH;#else   CONFIG_FILE_NAME;#endif        initConfigFile(configFileName);        if (!isStarted())        {                start();        }}TaoTerminalAdaptor::TaoTerminalAdaptor(CpCallManager *pCallMgr,                                           PsPhoneTask *pPhoneTask,                                           TaoTransportTask*& rpSvrTransport,                                           TaoListenerManager* pListenerMgr,                                           const UtlString& name,                                           const int maxRequestQMsgs)        : TaoAdaptor(name, maxRequestQMsgs),        mpCallMgrTask(pCallMgr){        mpPhoneTask = pPhoneTask;        mpSvrTransport = rpSvrTransport;        mpListenerMgr = pListenerMgr;        mpObjectDb  = new TaoObjectMap();        mpObjectCnt = new TaoReference();        if (!isStarted())        {                start();        }}TaoTerminalAdaptor::~TaoTerminalAdaptor(){        if (mpObjectDb)        {                delete mpObjectDb;                mpObjectDb = 0;        }        if (mpObjectCnt)        {                delete mpObjectCnt;                mpObjectCnt = 0;        }}UtlBoolean TaoTerminalAdaptor::handleMessage(OsMsg& rMsg){        UtlBoolean handled = FALSE;        int msgType = rMsg.getMsgSubType();        int cmd = ((TaoMessage&)rMsg).getCmd();        if( TaoMessage::REQUEST_TERMINAL == msgType)        {                switch (cmd)                {                case TaoMessage::ADD_CALL_LISTENER:                        if (TAO_SUCCESS == terminalAddCallListener((TaoMessage&)rMsg))                        {                                handled = TRUE;                        }                        break;                case TaoMessage::ADD_TERM_LISTENER:                        if (TAO_SUCCESS == terminalAddTermListener((TaoMessage&)rMsg))                        {                                handled = TRUE;                        }                        break;                case TaoMessage::GET_ADDRESSES:                        if (TAO_SUCCESS == terminalGetAddresses((TaoMessage&)rMsg))                        {                                handled = TRUE;                        }                        break;                case TaoMessage::GET_CALL_LISTENERS:                        if (TAO_SUCCESS == terminalGetCallListeners((TaoMessage&)rMsg))                        {                                handled = TRUE;                        }                        break;                case TaoMessage::GET_COMPONENT:                        if (TAO_SUCCESS == terminalGetComponent((TaoMessage&)rMsg))                        {                                handled = TRUE;                        }                        break;                case TaoMessage::GET_COMPONENTS:                        if (TAO_SUCCESS == terminalGetComponents((TaoMessage&)rMsg))                        {                                handled = TRUE;                        }                        break;                case TaoMessage::GET_COMPONENTGROUPS:                        if (TAO_SUCCESS == terminalGetComponentGroups((TaoMessage&)rMsg))                        {                                handled = TRUE;                        }                        break;                case TaoMessage::GET_CONFIG:                        if (TAO_SUCCESS == terminalGetConfig((TaoMessage&)rMsg))                        {                                handled = TRUE;                        }                        break;                case TaoMessage::GET_DONOT_DISTURB:                        if (TAO_SUCCESS == terminalGetDoNotDisturb((TaoMessage&)rMsg))                        {                                handled = TRUE;                        }                        break;                case TaoMessage::GET_NAME:                        if (TAO_SUCCESS == terminalGetName((TaoMessage&)rMsg))                        {                                handled = TRUE;                        }                        break;                case TaoMessage::GET_TERM_CONNECTIONS:                        if (TAO_SUCCESS == terminalGetTermConnections((TaoMessage&)rMsg))                        {                                handled = TRUE;                        }                        break;                case TaoMessage::GET_TERM_LISTENERS:                        if (TAO_SUCCESS == terminalGetTermListeners((TaoMessage&)rMsg))                        {                                handled = TRUE;                        }                        break;                case TaoMessage::GET_PROVIDER:                        if (TAO_SUCCESS == terminalGetProvider((TaoMessage&)rMsg))                        {                                handled = TRUE;                        }                        break;                case TaoMessage::NUM_ADDRESSES:                        if (TAO_SUCCESS == terminalNumAddresses((TaoMessage&)rMsg))                        {                                handled = TRUE;                        }                        break;                case TaoMessage::NUM_CALL_LISTENERS:                        if (TAO_SUCCESS == terminalNumCallListeners((TaoMessage&)rMsg))                        {                                handled = TRUE;                        }                        break;                case TaoMessage::NUM_COMPONENTS:                        if (TAO_SUCCESS == terminalNumComponents((TaoMessage&)rMsg))                        {                                handled = TRUE;                        }                        break;                case TaoMessage::NUM_TERM_LISTENERS:                        if (TAO_SUCCESS == terminalNumTermListeners((TaoMessage&)rMsg))                        {                                handled = TRUE;                        }                        break;                case TaoMessage::NUM_TERM_CONNECTIONS:                        if (TAO_SUCCESS == terminalNumTermConnectionss((TaoMessage&)rMsg))                        {                                handled = TRUE;                        }                        break;                case TaoMessage::PICKUP:                        if (TAO_SUCCESS == terminalPickup((TaoMessage&)rMsg))                        {                                handled = TRUE;                        }                        break;                case TaoMessage::REMOVE_CALL_LISTENER:                        if (TAO_SUCCESS == terminalRemoveCallListener((TaoMessage&)rMsg))                        {                                handled = TRUE;                        }                        break;                case TaoMessage::REMOVE_TERM_LISTENER:                        if (TAO_SUCCESS == terminalRemoveTermListener((TaoMessage&)rMsg))                        {                                handled = TRUE;                        }                        break;                case TaoMessage::SET_DONOT_DISTURB:                        if (TAO_SUCCESS == terminalSetDoNotDisturb((TaoMessage&)rMsg))                        {                                handled = TRUE;                        }                        break;                case TaoMessage::SET_INBOUND_CODEC_CPU_LIMIT:                        if (TAO_SUCCESS == terminalSetCodecCPULimit((TaoMessage&)rMsg))                        {                                handled = TRUE;                        }                        break;                case TaoMessage::TERMINAL_RESULT:                        if (TAO_SUCCESS == returnResult((TaoMessage&)rMsg))                        {                                handled = TRUE;                        }                        break;                default:                  break;                }        }        else if (TaoMessage::RESPONSE_TERMINAL == msgType)        {                if (TAO_SUCCESS == returnResult((TaoMessage&)rMsg))                        handled = TRUE;        }        if (!handled)        {                TaoMessage*     pMsg = (TaoMessage*) &rMsg;                pMsg->setArgCnt(1);                pMsg->setArgList("-1");                if (mpSvrTransport->postMessage(*pMsg))                        handled = TRUE;        }        return handled;}/* ----------------------------- TERMINAL --------------------------------- */TaoStatus TaoTerminalAdaptor::terminalAddCallListener(TaoMessage& rMsg){        int     argCnt = rMsg.getArgCnt();        if (argCnt != 2)                return TAO_FAILURE;        UtlString arg = UtlString("0");        if (mpListenerMgr)        {                argCnt = 0;                mpListenerMgr->addCallListener(rMsg);        }        else        {                argCnt = 1;                arg = UtlString("-1");  // indicating failure        }        TaoObjHandle clientSocket = rMsg.getSocket();        TaoObjHandle msgId = rMsg.getMsgID();        TaoObjHandle objId = rMsg.getTaoObjHandle();        TaoMessage*     pMsg = new TaoMessage(TaoMessage::RESPONSE_TERMINAL,                                                                        TaoMessage::ADD_CALL_LISTENER,                                                                        msgId,                                                                        objId,                                                                        clientSocket,                                                                        argCnt,                                                                        arg);        if (mpSvrTransport->postMessage(*pMsg))        {                delete pMsg;                return TAO_SUCCESS;        }        return TAO_FAILURE;}TaoStatus TaoTerminalAdaptor::terminalAddTermListener(TaoMessage& rMsg){        int     argCnt = rMsg.getArgCnt();        if (argCnt != 2)                return TAO_FAILURE;        UtlString arg = UtlString("0");        if (mpListenerMgr)        {                argCnt = 0;                mpListenerMgr->addEventListener(rMsg);        }        else        {                argCnt = 1;                arg = UtlString("-1");  // indicating failure        }        TaoObjHandle clientSocket = rMsg.getSocket();        TaoObjHandle msgId = rMsg.getMsgID();        TaoObjHandle objId = rMsg.getTaoObjHandle();        TaoMessage*     pMsg = new TaoMessage(TaoMessage::RESPONSE_TERMINAL,                                                                        TaoMessage::ADD_TERM_LISTENER,                                                                        msgId,                                                                        objId,                                                                        clientSocket,                                                                        argCnt,                                                                        arg);        if (mpSvrTransport->postMessage(*pMsg))        {                delete pMsg;                return TAO_SUCCESS;        }        return TAO_FAILURE;}/*** getAddresses() basically does the same thing as* TaoProviderAdapter:getAddresses() in this implementation.* It returns the user lines as addresses.*/TaoStatus TaoTerminalAdaptor::terminalGetAddresses(TaoMessage& rMsg){  int   argCnt = rMsg.getArgCnt();        if (argCnt != 1)                return TAO_FAILURE;   UtlString thisTerminal = rMsg.getArgList();

⌨️ 快捷键说明

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