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

📄 taoeventdispatcher.cpp

📁 基于sipfoundy 公司开发的sipx协议API
💻 CPP
字号:
//// Copyright (C) 2004, 2005 Pingtel Corp.// //// $$//////////////////////////////////////////////////////////////////////////////#include <assert.h>#ifdef TEST#include "utl/UtlMemCheck.h"#endif#include "tao/TaoEventDispatcher.h"#include "tao/TaoMessage.h"#include "tao/TaoObject.h"#include "tao/TaoEvent.h"//////////////////////////////////////////////////////////////////////// Construction/Destruction//////////////////////////////////////////////////////////////////////TaoEventDispatcher::TaoEventDispatcher(const UtlString& name, const int maxRequestQMsgs)        : OsServerTask(name, NULL, maxRequestQMsgs){        mTaoObjHandle = 0; // NULL        mpProviderEvent = new TaoEvent(0);}TaoEventDispatcher::~TaoEventDispatcher(){        if (mpProviderEvent)        {                delete mpProviderEvent;                mpProviderEvent = 0;        }}UtlBoolean TaoEventDispatcher::handleMessage(OsMsg& rMsg){        UtlBoolean handled = FALSE;        switch (rMsg.getMsgSubType())        {        case TaoMessage::RESPONSE_ADDRESS:        case TaoMessage::RESPONSE_CALL:        case TaoMessage::RESPONSE_CONNECTION:        case TaoMessage::RESPONSE_PROVIDER:        case TaoMessage::RESPONSE_TERMCONNECTION:        case TaoMessage::RESPONSE_TERMINAL:        case TaoMessage::RESPONSE_PHONECOMPONENT:                {                        TaoObjHandle handle = ((TaoMessage &)rMsg).getTaoObjHandle();                        int data = ((TaoMessage &)rMsg).getArgCnt();                        mpProviderEvent->setIntData(data);                        data = ((TaoMessage &)rMsg).getCmd();                        mpProviderEvent->setIntData2(data);                        UtlString argList = ((TaoMessage &)rMsg).getArgList();                        // need to convert to ints and find a way to pass to the app                        argList.index(TAOMESSAGE_DELIMITER, 0);                        mpProviderEvent->setStringData(argList);                        mpProviderEvent->signal((int) handle);                        handled = TRUE;                        break;                }        case TaoMessage::UNSPECIFIED:        default:        //assert(FALSE);            break;        }        return handled;}// Set the errno status for the task.// This call has no effect under Windows NT and, if the task has been// started, will always returns OS_SUCCESSOsStatus TaoEventDispatcher::setErrno(int errno){   if (!isStarted())      return OS_TASK_NOT_STARTED;   return OS_SUCCESS;}

⌨️ 快捷键说明

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