diff options
author | Benoit Foucher <benoit@zeroc.com> | 2012-10-12 11:34:53 +0200 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2012-10-12 11:34:53 +0200 |
commit | 23c1e3b603a9d902593ffe9f99562fcda3af1589 (patch) | |
tree | 60ea7cdc0da5a9676ca12350ac82b069cc86eb5e /cpp/src/Glacier2/RequestQueue.cpp | |
parent | .NET demo project updates (diff) | |
download | ice-23c1e3b603a9d902593ffe9f99562fcda3af1589.tar.bz2 ice-23c1e3b603a9d902593ffe9f99562fcda3af1589.tar.xz ice-23c1e3b603a9d902593ffe9f99562fcda3af1589.zip |
Added support for Glacier2 MX and fixed ICE-4880
Diffstat (limited to 'cpp/src/Glacier2/RequestQueue.cpp')
-rwxr-xr-x | cpp/src/Glacier2/RequestQueue.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/cpp/src/Glacier2/RequestQueue.cpp b/cpp/src/Glacier2/RequestQueue.cpp index dbee76a436d..23ab5baaed2 100755 --- a/cpp/src/Glacier2/RequestQueue.cpp +++ b/cpp/src/Glacier2/RequestQueue.cpp @@ -208,6 +208,10 @@ Glacier2::RequestQueue::addRequest(const RequestPtr& request) // if(request->override(*p)) { + if(_observer) + { + _observer->overridden(!_connection); + } request->queued(); *p = request; return true; @@ -224,6 +228,10 @@ Glacier2::RequestQueue::addRequest(const RequestPtr& request) } _requests.push_back(request); request->queued(); + if(_observer) + { + _observer->queued(!_connection); + } return false; } @@ -263,6 +271,13 @@ Glacier2::RequestQueue::destroy() } void +Glacier2::RequestQueue::updateObserver(const Glacier2::Instrumentation::SessionObserverPtr& observer) +{ + IceUtil::Mutex::Lock lock(*this); + _observer = observer; +} + +void Glacier2::RequestQueue::destroyInternal() { // @@ -290,6 +305,10 @@ Glacier2::RequestQueue::flush() try { assert(_callback); + if(_observer) + { + _observer->forwarded(!_connection); + } Ice::AsyncResultPtr result = (*p)->invoke(_callback); if(!result) { @@ -342,6 +361,10 @@ Glacier2::RequestQueue::flush(set<Ice::ObjectPrx>& batchProxies) { try { + if(_observer) + { + _observer->forwarded(!_connection); + } assert(_callback); Ice::AsyncResultPtr result = (*p)->invoke(_callback); if(!result) |