summaryrefslogtreecommitdiff
path: root/cpp/src/Glacier2/RequestQueue.cpp
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2012-10-12 11:34:53 +0200
committerBenoit Foucher <benoit@zeroc.com>2012-10-12 11:34:53 +0200
commit23c1e3b603a9d902593ffe9f99562fcda3af1589 (patch)
tree60ea7cdc0da5a9676ca12350ac82b069cc86eb5e /cpp/src/Glacier2/RequestQueue.cpp
parent.NET demo project updates (diff)
downloadice-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-xcpp/src/Glacier2/RequestQueue.cpp23
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)