summaryrefslogtreecommitdiff
path: root/csharp/test/Ice/exceptions/ThrowerAMDI.cs
diff options
context:
space:
mode:
Diffstat (limited to 'csharp/test/Ice/exceptions/ThrowerAMDI.cs')
-rw-r--r--csharp/test/Ice/exceptions/ThrowerAMDI.cs167
1 files changed, 167 insertions, 0 deletions
diff --git a/csharp/test/Ice/exceptions/ThrowerAMDI.cs b/csharp/test/Ice/exceptions/ThrowerAMDI.cs
new file mode 100644
index 00000000000..c4d0f2bd185
--- /dev/null
+++ b/csharp/test/Ice/exceptions/ThrowerAMDI.cs
@@ -0,0 +1,167 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2015 ZeroC, Inc. All rights reserved.
+//
+// This copy of Ice is licensed to you under the terms described in the
+// ICE_LICENSE file included in this distribution.
+//
+// **********************************************************************
+
+using System.Diagnostics;
+using Test;
+
+public class ThrowerI : ThrowerDisp_
+{
+ public ThrowerI()
+ {
+ }
+
+ public override void shutdown_async(AMD_Thrower_shutdown cb, Ice.Current current)
+ {
+ current.adapter.getCommunicator().shutdown();
+ cb.ice_response();
+ }
+
+ public override void supportsUndeclaredExceptions_async(AMD_Thrower_supportsUndeclaredExceptions cb, Ice.Current current)
+ {
+ cb.ice_response(true);
+ }
+
+ public override void supportsAssertException_async(AMD_Thrower_supportsAssertException cb, Ice.Current current)
+ {
+ cb.ice_response(false);
+ }
+
+ public override void throwAasA_async(AMD_Thrower_throwAasA cb, int a, Ice.Current current)
+ {
+ A ex = new A();
+ ex.aMem = a;
+ cb.ice_exception(ex);
+ }
+
+ public override void throwAorDasAorD_async(AMD_Thrower_throwAorDasAorD cb, int a, Ice.Current current)
+ {
+ if(a > 0)
+ {
+ A ex = new A();
+ ex.aMem = a;
+ cb.ice_exception(ex);
+ }
+ else
+ {
+ D ex = new D();
+ ex.dMem = a;
+ cb.ice_exception(ex);
+ }
+ }
+
+ public override void throwBasA_async(AMD_Thrower_throwBasA cb, int a, int b, Ice.Current current)
+ {
+ B ex = new B();
+ ex.aMem = a;
+ ex.bMem = b;
+ throw ex;
+ //cb.ice_exception(ex);
+ }
+
+ public override void throwBasB_async(AMD_Thrower_throwBasB cb, int a, int b, Ice.Current current)
+ {
+ B ex = new B();
+ ex.aMem = a;
+ ex.bMem = b;
+ throw ex;
+ //cb.ice_exception(ex);
+ }
+
+ public override void throwCasA_async(AMD_Thrower_throwCasA cb, int a, int b, int c, Ice.Current current)
+ {
+ C ex = new C();
+ ex.aMem = a;
+ ex.bMem = b;
+ ex.cMem = c;
+ cb.ice_exception(ex);
+ }
+
+ public override void throwCasB_async(AMD_Thrower_throwCasB cb, int a, int b, int c, Ice.Current current)
+ {
+ C ex = new C();
+ ex.aMem = a;
+ ex.bMem = b;
+ ex.cMem = c;
+ cb.ice_exception(ex);
+ }
+
+ public override void throwCasC_async(AMD_Thrower_throwCasC cb, int a, int b, int c, Ice.Current current)
+ {
+ C ex = new C();
+ ex.aMem = a;
+ ex.bMem = b;
+ ex.cMem = c;
+ cb.ice_exception(ex);
+ }
+
+ public override void throwUndeclaredA_async(AMD_Thrower_throwUndeclaredA cb, int a, Ice.Current current)
+ {
+ A ex = new A();
+ ex.aMem = a;
+ cb.ice_exception(ex);
+ }
+
+ public override void throwUndeclaredB_async(AMD_Thrower_throwUndeclaredB cb, int a, int b, Ice.Current current)
+ {
+ B ex = new B();
+ ex.aMem = a;
+ ex.bMem = b;
+ cb.ice_exception(ex);
+ }
+
+ public override void throwUndeclaredC_async(AMD_Thrower_throwUndeclaredC cb, int a, int b, int c, Ice.Current current)
+ {
+ C ex = new C();
+ ex.aMem = a;
+ ex.bMem = b;
+ ex.cMem = c;
+ cb.ice_exception(ex);
+ }
+
+ public override void throwLocalException_async(AMD_Thrower_throwLocalException cb, Ice.Current current)
+ {
+ cb.ice_exception(new Ice.TimeoutException());
+ }
+
+ public override void throwNonIceException_async(AMD_Thrower_throwNonIceException cb, Ice.Current current)
+ {
+ throw new System.Exception();
+ }
+
+ public override void throwAssertException_async(AMD_Thrower_throwAssertException cb, Ice.Current current)
+ {
+ Debug.Assert(false);
+ }
+
+ public override void throwMemoryLimitException_async(AMD_Thrower_throwMemoryLimitException cb, byte[] seq,
+ Ice.Current current)
+ {
+ cb.ice_response(new byte[1024 * 20]); // 20KB is over the configured 10KB message size max.
+ }
+
+ public override void throwLocalExceptionIdempotent_async(AMD_Thrower_throwLocalExceptionIdempotent e,
+ Ice.Current current)
+ {
+ throw new Ice.TimeoutException();
+ }
+
+ public override void throwAfterResponse_async(AMD_Thrower_throwAfterResponse cb, Ice.Current current)
+ {
+ cb.ice_response();
+
+ throw new System.Exception();
+ }
+
+ public override void throwAfterException_async(AMD_Thrower_throwAfterException cb, Ice.Current current)
+ {
+ cb.ice_exception(new A());
+
+ throw new System.Exception();
+ }
+}