?? ptaddress.cpp
字號:
return PT_SUCCESS;}PtStatus PtAddress::removeAddressListener(PtAddressListener& rAddressListener){ TaoObjHandle listener = 0x00000008; //fake char buff[MAXIMUM_INTEGER_STRING_LENGTH]; sprintf(buff, "%d", listener); UtlString arg(buff); mpTransactionCnt->add(); unsigned int transactionId = mpTransactionCnt->getRef(); OsProtectedEvent *pe = mpEventMgr->alloc(); TaoMessage msg(TaoMessage::REQUEST_ADDRESS, TaoMessage::REMOVE_ADDRESS_LISTENER, transactionId, 0, (TaoObjHandle)pe, 1, arg); mpClient->sendRequest(msg); 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; } int rc; pe->getEventData((int &)rc);#ifdef PTAPI_TEST int cmd; pe->getIntData2(cmd); assert(cmd == TaoMessage::REMOVE_ADDRESS_LISTENER);#endif mpEventMgr->release(pe); return PT_SUCCESS;}PtStatus PtAddress::removeCallListener(PtCallListener& rCallListener){ TaoObjHandle listener = (TaoObjHandle)&rCallListener; char buff[MAXIMUM_INTEGER_STRING_LENGTH]; sprintf(buff, "%d", listener); UtlString arg(buff); mpTransactionCnt->add(); unsigned int transactionId = mpTransactionCnt->getRef(); OsProtectedEvent *pe = mpEventMgr->alloc(); TaoMessage msg(TaoMessage::REQUEST_ADDRESS, TaoMessage::REMOVE_CALL_LISTENER, transactionId, 0, (TaoObjHandle)pe, 1, arg); mpClient->sendRequest(msg); 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; } int rc; pe->getEventData((int &)rc);#ifdef PTAPI_TEST int cmd; pe->getIntData2(cmd); assert(cmd == TaoMessage::REMOVE_CALL_LISTENER);#endif mpEventMgr->release(pe); return PT_SUCCESS;}PtStatus PtAddress::setDoNotDisturb(PtBoolean flag){ char buff[MAXIMUM_INTEGER_STRING_LENGTH]; sprintf(buff, "%d", flag); UtlString arg(buff); mpTransactionCnt->add(); unsigned int transactionId = mpTransactionCnt->getRef(); OsProtectedEvent *pe = mpEventMgr->alloc(); TaoMessage msg(TaoMessage::REQUEST_ADDRESS, TaoMessage::SET_DONOT_DISTURB, transactionId, 0, (TaoObjHandle)pe, 1, arg); mpClient->sendRequest(msg); 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; } int rc; pe->getEventData((int &)rc);#ifdef PTAPI_TEST int cmd; pe->getIntData2(cmd); assert(cmd == TaoMessage::SET_DONOT_DISTURB);#endif mpEventMgr->release(pe); mbDoNotDisturb = flag; return PT_SUCCESS;}PtStatus PtAddress::setForwarding(PtAddressForwarding forwards[], int size){ char buff[MAXIMUM_INTEGER_STRING_LENGTH]; sprintf(buff, "%d", size); UtlString arg(buff); osPrintf("PtAddress::setForwarding(size=%d)\n", size) ; int i; for (i = 0; i < size; i++) { osPrintf("%02d: type=%d filter=%d, url=%s, caller=%s\n", i, forwards[i].mForwardingType, forwards[i].mFilterType, forwards[i].mDestinationUrl.data(), forwards[i].mCallerUrl.data()) ; sprintf(buff, "%d", forwards[i].mForwardingType); arg += TAOMESSAGE_DELIMITER + UtlString(buff); sprintf(buff, "%d", forwards[i].mFilterType); arg += TAOMESSAGE_DELIMITER + UtlString(buff); arg += TAOMESSAGE_DELIMITER + forwards[i].mDestinationUrl + TAOMESSAGE_DELIMITER + forwards[i].mCallerUrl; sprintf(buff, "%d", forwards[i].mNoAnswerTimeout); arg += TAOMESSAGE_DELIMITER + UtlString(buff); } unsigned int transactionId = 0; if (mpTransactionCnt) { mpTransactionCnt->add(); transactionId = mpTransactionCnt->getRef(); } else { // I HAVE NO IDEA WHAT THIS IS ABOUT, BUT THE FORMAT IS WRONG!!! // And, we only got here because mpTransactionCnt is NULL. osPrintf("\nPtAddress::setForwarding - mpTransactionCnt = %p\n", mpTransactionCnt); } OsProtectedEvent *pe = mpEventMgr->alloc(); TaoMessage msg(TaoMessage::REQUEST_ADDRESS,TaoMessage::SET_FORWARDING, transactionId, 0, (TaoObjHandle)pe, (5 * size + 1), arg); mpClient->sendRequest(msg); 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; } int rc; pe->getEventData((int &)rc);#ifdef PTAPI_TEST int cmd; pe->getIntData2(cmd); assert(cmd == TaoMessage::SET_FORWARDING);#endif mpEventMgr->release(pe); mAddressForwardDbSem.acquire(); if (!mpAddressForwards && mAddressForwardCnt == 0) { if (size > 0) { mpAddressForwards = new PtAddressForwarding[size]; mAddressForwardCnt = size; for (i = 0; i < size; i++) mpAddressForwards[i] = PtAddressForwarding(forwards[i]); } } else { // Dump the old list delete[] mpAddressForwards ; mpAddressForwards = NULL ; mAddressForwardCnt = 0 ; // Create a new list if (size > 0) { mpAddressForwards = new PtAddressForwarding[size]; mAddressForwardCnt = size; for (int k = 0; k < size; k++) mpAddressForwards[k] = PtAddressForwarding(forwards[k]); } } mAddressForwardDbSem.release(); return PT_SUCCESS;}PtStatus PtAddress::setMessageWaiting(PtBoolean flag){ char buff[MAXIMUM_INTEGER_STRING_LENGTH]; sprintf(buff, "%d", flag); UtlString arg(buff); mpTransactionCnt->add(); unsigned int transactionId = mpTransactionCnt->getRef(); OsProtectedEvent *pe = mpEventMgr->alloc(); TaoMessage msg(TaoMessage::REQUEST_ADDRESS,TaoMessage::SET_MESSAGE_WAITING, transactionId, 0, (TaoObjHandle)pe, 1, arg); mpClient->sendRequest(msg); 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; } int rc; pe->getEventData((int &)rc);#ifdef PTAPI_TEST int cmd; pe->getIntData2(cmd); assert(cmd == TaoMessage::SET_MESSAGE_WAITING);#endif mpEventMgr->release(pe); mbMessageWaiting = flag; return PT_SUCCESS;}PtStatus PtAddress::setOfferedTimeout(int milliSecs){ char buff[MAXIMUM_INTEGER_STRING_LENGTH]; sprintf(buff, "%d", milliSecs); UtlString arg(buff); mpTransactionCnt->add(); unsigned int transactionId = mpTransactionCnt->getRef(); OsProtectedEvent *pe = mpEventMgr->alloc(); TaoMessage msg(TaoMessage::REQUEST_ADDRESS,TaoMessage::SET_OFFERED_TIMEOUT, transactionId, 0, (TaoObjHandle)pe, 1, arg); mpClient->sendRequest(msg); 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; } int rc; pe->getEventData((int &)rc);#ifdef PTAPI_TEST int cmd; pe->getIntData2(cmd); assert(cmd == TaoMessage::SET_OFFERED_TIMEOUT);#endif mpEventMgr->release(pe); mOfferedTimeout = milliSecs; return PT_SUCCESS;}/* ============================ ACCESSORS ================================= */// Get the name associated with the address.PtStatus PtAddress::getName(char* rpName, int len){ enum PtStatus returnCode = PT_RESOURCE_UNAVAILABLE; if (rpName && len > 0) { if (!mAddress.isNull()) { int bytes = mAddress.length(); bytes = (bytes > len) ? len : bytes; memset(rpName, 0, len); strncpy (rpName, mAddress.data(), bytes); returnCode = PT_SUCCESS; } } return returnCode;}PtStatus PtAddress::getAddressListeners(PtAddressListener* addrListeners[], int size, int& nItems){ char buff[MAXIMUM_INTEGER_STRING_LENGTH]; sprintf(buff, "%d", size); UtlString arg(buff); mpTransactionCnt->add(); unsigned int transactionId = mpTransactionCnt->getRef(); OsProtectedEvent *pe = mpEventMgr->alloc(); TaoMessage msg(TaoMessage::REQUEST_ADDRESS, TaoMessage::GET_ADDRESS_LISTENERS, transactionId, 0, (TaoObjHandle)pe, 1, arg); mpClient->sendRequest(msg); int items; 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 &)items); pe->getStringData((UtlString &)arg);#ifdef PTAPI_TEST int cmd; pe->getIntData2(cmd); assert(cmd == TaoMessage::GET_ADDRESS_LISTENERS);#endif mpEventMgr->release(pe); return PT_SUCCESS;}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -