📄 taoprovideradaptor.cpp
字号:
if (argCnt != 1) return TAO_FAILURE; UtlString argList = "localterminal" ; TaoObjHandle clientSocket = rMsg.getSocket(); TaoMessage* pMsg = new TaoMessage(TaoMessage::RESPONSE_PROVIDER, TaoMessage::GET_TERMINALS, rMsg.getMsgID(), 1, clientSocket, 1, argList); if (mpSvrTransport->postMessage(*pMsg)) { delete pMsg; return TAO_SUCCESS; } return TAO_FAILURE;}TaoStatus TaoProviderAdaptor::providerCreateCall(TaoMessage& rMsg){ int argCnt = rMsg.getArgCnt(); if (argCnt != 0) return TAO_FAILURE; UtlString callId; if (mState == PtProvider::IN_SERVICE) { mpCallMgrTask->createCall(&callId); argCnt = 1; } else { rMsg.setMsgSubType(TaoMessage::RESPONSE_PROVIDER); argCnt = 0; } TaoObjHandle clientSocket = rMsg.getSocket(); TaoMessage* pMsg = new TaoMessage(TaoMessage::RESPONSE_PROVIDER, TaoMessage::CREATE_CALL, rMsg.getMsgID(), rMsg.getTaoObjHandle(), clientSocket, argCnt, callId); if (mpSvrTransport->postMessage(*pMsg)) { delete pMsg; return TAO_SUCCESS; } return TAO_FAILURE;}TaoStatus TaoProviderAdaptor::getCreateCall(TaoMessage& rMsg){ int argCnt = rMsg.getArgCnt(); if (argCnt != 0) return TAO_FAILURE; TaoObjHandle clientSocket = rMsg.getSocket(); UtlString callId; int objId = rMsg.getTaoObjHandle(); mpCallDb->insert(mpCallCnt->add(), objId); TaoMessage* pMsg = new TaoMessage(TaoMessage::RESPONSE_PROVIDER, TaoMessage::CREATE_CALL, rMsg.getMsgID(), objId, clientSocket, 0, ""); if (mpSvrTransport->postMessage(*pMsg)) { delete pMsg; return TAO_SUCCESS; } return TAO_FAILURE;}TaoStatus TaoProviderAdaptor::providerGetCalls(TaoMessage& rMsg){ int argCnt = rMsg.getArgCnt(); if (argCnt != 1) return TAO_FAILURE; int nItems = mpCallCnt->getRef(); int size = atoi(rMsg.getArgList()); int actual = ((size < nItems) ? size : nItems); TaoObjHandle *pCalls; pCalls = new TaoObjHandle[nItems]; mpCallDb->getActiveObjects(pCalls, nItems); UtlString argList; UtlString rNextKey; UtlString rNextValue; char buff[MAXIMUM_INTEGER_STRING_LENGTH]; for (int i = 0; i < actual; i++) { sprintf(buff, "%d", (int)pCalls[i]); argList += (UtlString) buff; if (i < (actual - 1)) { argList += TAOMESSAGE_DELIMITER; } } TaoObjHandle clientSocket = rMsg.getSocket(); TaoMessage* pMsg = new TaoMessage(TaoMessage::RESPONSE_PROVIDER, TaoMessage::GET_ADDRESSES, rMsg.getMsgID(), nItems, clientSocket, actual, argList); if (mpSvrTransport->postMessage(*pMsg)) { delete pMsg; return TAO_SUCCESS; } return TAO_FAILURE;}TaoStatus TaoProviderAdaptor::providerGetState(TaoMessage& rMsg){ int argCnt = rMsg.getArgCnt(); if (argCnt != 0) return TAO_FAILURE; TaoObjHandle clientSocket = rMsg.getSocket(); TaoMessage* pMsg = new TaoMessage(TaoMessage::RESPONSE_PROVIDER, TaoMessage::GET_STATE, rMsg.getMsgID(), mState, clientSocket, 0, ""); if (mpSvrTransport->postMessage(*pMsg)) { delete pMsg; return TAO_SUCCESS; } return TAO_FAILURE;}TaoStatus TaoProviderAdaptor::providerAddProviderListener(TaoMessage& rMsg){ int argCnt = rMsg.getArgCnt(); if (argCnt != 2) return TAO_FAILURE; TaoObjHandle clientSocket = rMsg.getSocket(); rMsg.getMsgID(); TaoObjHandle objHdl = rMsg.getTaoObjHandle(); TaoString argList(rMsg.getArgList(), TAOMESSAGE_DELIMITER); UtlString sProviderListener = argList[0]; UtlString sTerminalName = argList[1]; if (mObjId) { int objId = atoi(sProviderListener); TaoProviderListener *pListener; pListener = new TaoProviderListener(objId, clientSocket, mpSvrTransport, sTerminalName); objId = mpProviderListenerCnt->add(); mpProviderListenerDb->insert((TaoObjHandle)objId, (TaoObjHandle)pListener); } TaoMessage* pMsg = new TaoMessage(TaoMessage::RESPONSE_PROVIDER, TaoMessage::ADD_PROVIDER_LISTENER, rMsg.getMsgID(), objHdl, clientSocket, 0, ""); if (mpSvrTransport->postMessage(*pMsg)) { delete pMsg; return TAO_SUCCESS; } return TAO_FAILURE;}TaoStatus TaoProviderAdaptor::providerRemoveProviderListener(TaoMessage& rMsg){ int argCnt = rMsg.getArgCnt(); if (argCnt != 1) return TAO_FAILURE; TaoObjHandle clientSocket = rMsg.getSocket(); TaoObjHandle objId = rMsg.getTaoObjHandle();////////////// TaoMessage* pMsg = new TaoMessage(TaoMessage::RESPONSE_PROVIDER, TaoMessage::REMOVE_PROVIDER_LISTENER, rMsg.getMsgID(), objId, clientSocket, 0, ""); if (mpSvrTransport->postMessage(*pMsg)) { delete pMsg; return TAO_SUCCESS; } return TAO_FAILURE;}TaoStatus TaoProviderAdaptor::providerGetProviderListeners(TaoMessage& rMsg){ int argCnt = rMsg.getArgCnt(); if (argCnt != 1) return TAO_FAILURE; int nItems = mpProviderListenerCnt->getRef(); int size = atoi(rMsg.getArgList()); int actual = ((size < nItems) ? size : nItems); TaoObjHandle *pProviderListeners; pProviderListeners = new TaoObjHandle[nItems]; mpProviderListenerDb->getActiveObjects(pProviderListeners, nItems); UtlString argList; UtlString rNextKey; UtlString rNextValue; char buff[MAXIMUM_INTEGER_STRING_LENGTH]; for (int i = 0; i < actual; i++) { sprintf(buff, "%d", (int)pProviderListeners[i]); argList += (UtlString) buff; if (i < (actual - 1)) { argList += TAOMESSAGE_DELIMITER; } } TaoObjHandle clientSocket = rMsg.getSocket(); TaoMessage* pMsg = new TaoMessage(TaoMessage::RESPONSE_PROVIDER, TaoMessage::GET_PROVIDER_LISTENERS, rMsg.getMsgID(), nItems, clientSocket, actual, argList); if (mpSvrTransport->postMessage(*pMsg)) { delete pMsg; return TAO_SUCCESS; } return TAO_FAILURE;}TaoStatus TaoProviderAdaptor::providerNumAddresses(TaoMessage& rMsg){ int argCnt = rMsg.getArgCnt(); if (argCnt != 0) return TAO_FAILURE; TaoObjHandle clientSocket = rMsg.getSocket(); rMsg.getTaoObjHandle(); int count = 1; TaoMessage* pMsg = new TaoMessage(TaoMessage::RESPONSE_PROVIDER, TaoMessage::NUM_ADDRESSES, rMsg.getMsgID(), count, clientSocket, 0, ""); if (mpSvrTransport->postMessage(*pMsg)) { delete pMsg; return TAO_SUCCESS; } return TAO_FAILURE;}TaoStatus TaoProviderAdaptor::providerNumTerminals(TaoMessage& rMsg){ int argCnt = rMsg.getArgCnt(); if (argCnt != 0) return TAO_FAILURE; TaoObjHandle clientSocket = rMsg.getSocket(); rMsg.getTaoObjHandle(); int count = 1 ; TaoMessage* pMsg = new TaoMessage(TaoMessage::RESPONSE_PROVIDER, TaoMessage::NUM_TERMINALS, rMsg.getMsgID(), count, clientSocket, 0, ""); if (mpSvrTransport->postMessage(*pMsg)) { delete pMsg; return TAO_SUCCESS; } return TAO_FAILURE;}TaoStatus TaoProviderAdaptor::providerNumCalls(TaoMessage& rMsg){ int argCnt = rMsg.getArgCnt(); if (argCnt != 0) return TAO_FAILURE; TaoObjHandle clientSocket = rMsg.getSocket(); rMsg.getTaoObjHandle(); int count = mpCallCnt->getRef(); TaoMessage* pMsg = new TaoMessage(TaoMessage::RESPONSE_PROVIDER, TaoMessage::NUM_CALLS, rMsg.getMsgID(), count, clientSocket, 0, ""); if (mpSvrTransport->postMessage(*pMsg)) { delete pMsg; return TAO_SUCCESS; } return TAO_FAILURE;}TaoStatus TaoProviderAdaptor::providerNumProviderListeners(TaoMessage& rMsg){ int argCnt = rMsg.getArgCnt(); if (argCnt != 0) return TAO_FAILURE; TaoObjHandle clientSocket = rMsg.getSocket(); rMsg.getTaoObjHandle(); int count = mpProviderListenerCnt->getRef(); TaoMessage* pMsg = new TaoMessage(TaoMessage::RESPONSE_PROVIDER, TaoMessage::NUM_PROVIDER_LISTENERS, rMsg.getMsgID(), count, clientSocket, 0, ""); if (mpSvrTransport->postMessage(*pMsg)) { delete pMsg; return TAO_SUCCESS; } return TAO_FAILURE;}TaoStatus TaoProviderAdaptor::providerShutdown(TaoMessage& rMsg){ int argCnt = rMsg.getArgCnt(); if (argCnt != 0) return TAO_FAILURE; TaoObjHandle clientSocket = rMsg.getSocket(); TaoObjHandle objId = rMsg.getTaoObjHandle();///////////////////// mState = SHUT_DOWN; TaoMessage* pMsg = new TaoMessage(TaoMessage::RESPONSE_PROVIDER, TaoMessage::SHUTDOWN, rMsg.getMsgID(), objId, clientSocket, 0, ""); osPrintf("==== TaoProviderAdaptor::providerShutdown %d\n", objId); if (mpSvrTransport->postMessage(*pMsg)) { delete pMsg; return TAO_SUCCESS; } return TAO_FAILURE;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -