diff options
author | Benoit Foucher <benoit@zeroc.com> | 2012-09-28 10:40:14 +0200 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2012-09-28 10:40:14 +0200 |
commit | 8527be5894d0e0ba90db306b8ab124c04144ab44 (patch) | |
tree | 5edbe2c2104764f9b3ba8721e573b32fe32f9baf /java/src/IceInternal/BatchOutgoing.java | |
parent | minor fix to build IceGridGUI in OsX (diff) | |
download | ice-8527be5894d0e0ba90db306b8ab124c04144ab44.tar.bz2 ice-8527be5894d0e0ba90db306b8ab124c04144ab44.tar.xz ice-8527be5894d0e0ba90db306b8ab124c04144ab44.zip |
Java & C# port
Diffstat (limited to 'java/src/IceInternal/BatchOutgoing.java')
-rw-r--r-- | java/src/IceInternal/BatchOutgoing.java | 31 |
1 files changed, 29 insertions, 2 deletions
diff --git a/java/src/IceInternal/BatchOutgoing.java b/java/src/IceInternal/BatchOutgoing.java index f1dad286f3d..8dfeefcf49d 100644 --- a/java/src/IceInternal/BatchOutgoing.java +++ b/java/src/IceInternal/BatchOutgoing.java @@ -9,22 +9,27 @@ package IceInternal; +import Ice.Instrumentation.Observer; +import Ice.Instrumentation.InvocationObserver; + public final class BatchOutgoing implements OutgoingMessageCallback { public - BatchOutgoing(Ice.ConnectionI connection, Instance instance) + BatchOutgoing(Ice.ConnectionI connection, Instance instance, InvocationObserver observer) { _connection = connection; _sent = false; _os = new BasicStream(instance, Protocol.currentProtocolEncoding); + _observer = observer; } public - BatchOutgoing(RequestHandler handler) + BatchOutgoing(RequestHandler handler, InvocationObserver observer) { _handler = handler; _sent = false; _os = new BasicStream(handler.getReference().getInstance(), Protocol.currentProtocolEncoding); + _observer = observer; } public void @@ -48,6 +53,11 @@ public final class BatchOutgoing implements OutgoingMessageCallback } } + if(_remoteObserver != null) + { + _remoteObserver.detach(); + _remoteObserver = null; + } if(_exception != null) { throw _exception; @@ -86,9 +96,26 @@ public final class BatchOutgoing implements OutgoingMessageCallback return _os; } + public void + attachRemoteObserver(Ice.ConnectionInfo info, Ice.Endpoint endpt) + { + if(_observer != null) + { + _remoteObserver = _observer.getRemoteObserver(info, endpt); + if(_remoteObserver != null) + { + _remoteObserver.attach(); + } + } + } + private RequestHandler _handler; private Ice.ConnectionI _connection; private BasicStream _os; private boolean _sent; private Ice.LocalException _exception; + + private InvocationObserver _observer; + private Observer _remoteObserver; + } |