diff options
author | Dwayne Boone <dwayne@zeroc.com> | 2014-09-19 11:24:12 -0230 |
---|---|---|
committer | Dwayne Boone <dwayne@zeroc.com> | 2014-09-19 11:24:12 -0230 |
commit | f684ea538bec2af9e3c10c93b3ae0341a0689ef0 (patch) | |
tree | de62e0ea13269c0ddfd4222b2f6433aaa8d77904 /java/src/IceInternal/GetConnectionOutgoingAsync.java | |
parent | adding collocated version of Python ami test (diff) | |
download | ice-f684ea538bec2af9e3c10c93b3ae0341a0689ef0.tar.bz2 ice-f684ea538bec2af9e3c10c93b3ae0341a0689ef0.tar.xz ice-f684ea538bec2af9e3c10c93b3ae0341a0689ef0.zip |
ICE-5661 some changes to class structure for OutgoingAsync
Diffstat (limited to 'java/src/IceInternal/GetConnectionOutgoingAsync.java')
-rw-r--r-- | java/src/IceInternal/GetConnectionOutgoingAsync.java | 51 |
1 files changed, 48 insertions, 3 deletions
diff --git a/java/src/IceInternal/GetConnectionOutgoingAsync.java b/java/src/IceInternal/GetConnectionOutgoingAsync.java index 95878b90709..75ef2d9b60f 100644 --- a/java/src/IceInternal/GetConnectionOutgoingAsync.java +++ b/java/src/IceInternal/GetConnectionOutgoingAsync.java @@ -9,11 +9,13 @@ package IceInternal; -public class GetConnectionOutgoingAsync extends IceInternal.OutgoingAsync +public class GetConnectionOutgoingAsync extends OutgoingAsyncBase implements OutgoingAsyncMessageCallback { - public GetConnectionOutgoingAsync(Ice.ObjectPrxHelperBase prx, String operation, CallbackBase callback) + public GetConnectionOutgoingAsync(Ice.ObjectPrxHelperBase prx, String operation, CallbackBase cb) { - super(prx, operation, callback); + super(prx.ice_getCommunicator(), ((Ice.ObjectPrxHelperBase) prx).__reference().getInstance(), operation, cb); + _proxy = (Ice.ObjectPrxHelperBase) prx; + _cnt = 0; _observer = ObserverHelper.get(prx, operation); } @@ -39,6 +41,12 @@ public class GetConnectionOutgoingAsync extends IceInternal.OutgoingAsync } @Override + public Ice.ObjectPrx getProxy() + { + return _proxy; + } + + @Override public int send(Ice.ConnectionI conection, boolean compress, boolean response) throws RetryException { @@ -84,6 +92,39 @@ public class GetConnectionOutgoingAsync extends IceInternal.OutgoingAsync } } + @Override + public void processRetry(boolean destroyed) + { + if(destroyed) + { + invokeExceptionAsync(new Ice.CommunicatorDestroyedException()); + } + else + { + try + { + __invoke(); + } + catch(Ice.LocalException ex) + { + invokeExceptionAsync(ex); + } + } + } + + @Override + public void dispatchInvocationCancel(final Ice.LocalException ex, ThreadPool threadPool, Ice.Connection connection) + { + threadPool.dispatch(new DispatchWorkItem(connection) + { + @Override + public void run() + { + GetConnectionOutgoingAsync.this.finished(ex); + } + }); + } + private void handleException(Ice.Exception exc) { try @@ -105,4 +146,8 @@ public class GetConnectionOutgoingAsync extends IceInternal.OutgoingAsync throw ex; } } + + private Ice.ObjectPrxHelperBase _proxy; + private RequestHandler _handler = null; + private int _cnt; } |