summaryrefslogtreecommitdiff
path: root/csharp/test/Ice/exceptions/ThrowerI.cs
diff options
context:
space:
mode:
Diffstat (limited to 'csharp/test/Ice/exceptions/ThrowerI.cs')
-rw-r--r--csharp/test/Ice/exceptions/ThrowerI.cs153
1 files changed, 153 insertions, 0 deletions
diff --git a/csharp/test/Ice/exceptions/ThrowerI.cs b/csharp/test/Ice/exceptions/ThrowerI.cs
new file mode 100644
index 00000000000..7200abef9ab
--- /dev/null
+++ b/csharp/test/Ice/exceptions/ThrowerI.cs
@@ -0,0 +1,153 @@
+// **********************************************************************
+//
+// 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;
+using System.Diagnostics;
+using Test;
+
+public sealed class ThrowerI : ThrowerDisp_
+{
+ public ThrowerI()
+ {
+ }
+
+ public override void shutdown(Ice.Current current)
+ {
+ current.adapter.getCommunicator().shutdown();
+ }
+
+ public override bool supportsUndeclaredExceptions(Ice.Current current)
+ {
+ return true;
+ }
+
+ public override bool supportsAssertException(Ice.Current current)
+ {
+ return false;
+ }
+
+ public override void throwAasA(int a, Ice.Current current)
+ {
+ A ex = new A();
+ ex.aMem = a;
+ throw ex;
+ }
+
+ public override void throwAorDasAorD(int a, Ice.Current current)
+ {
+ if(a > 0)
+ {
+ A ex = new A();
+ ex.aMem = a;
+ throw ex;
+ }
+ else
+ {
+ D ex = new D();
+ ex.dMem = a;
+ throw ex;
+ }
+ }
+
+ public override void throwBasA(int a, int b, Ice.Current current)
+ {
+ throwBasB(a, b, current);
+ }
+
+ public override void throwBasB(int a, int b, Ice.Current current)
+ {
+ B ex = new B();
+ ex.aMem = a;
+ ex.bMem = b;
+ throw ex;
+ }
+
+ public override void throwCasA(int a, int b, int c, Ice.Current current)
+ {
+ throwCasC(a, b, c, current);
+ }
+
+ public override void throwCasB(int a, int b, int c, Ice.Current current)
+ {
+ throwCasC(a, b, c, current);
+ }
+
+ public override void throwCasC(int a, int b, int c, Ice.Current current)
+ {
+ C ex = new C();
+ ex.aMem = a;
+ ex.bMem = b;
+ ex.cMem = c;
+ throw ex;
+ }
+
+ public override void throwLocalException(Ice.Current current)
+ {
+ throw new Ice.TimeoutException();
+ }
+
+ public override void throwNonIceException(Ice.Current current)
+ {
+ throw new System.Exception();
+ }
+
+ public override void throwAssertException(Ice.Current current)
+ {
+ Debug.Assert(false);
+ }
+
+ public override byte[] throwMemoryLimitException(byte[] seq, Ice.Current current)
+ {
+ return new byte[1024 * 20]; // 20KB is over the configured 10KB message size max.
+ }
+
+ public override void throwLocalExceptionIdempotent(Ice.Current current)
+ {
+ throw new Ice.TimeoutException();
+ }
+
+ public override void throwUndeclaredA(int a, Ice.Current current)
+ {
+ A ex = new A();
+ ex.aMem = a;
+ throw ex;
+ }
+
+ public override void throwUndeclaredB(int a, int b, Ice.Current current)
+ {
+ B ex = new B();
+ ex.aMem = a;
+ ex.bMem = b;
+ throw ex;
+ }
+
+ public override void throwUndeclaredC(int a, int b, int c, Ice.Current current)
+ {
+ C ex = new C();
+ ex.aMem = a;
+ ex.bMem = b;
+ ex.cMem = c;
+ throw ex;
+ }
+
+ public override void throwAfterResponse(Ice.Current current)
+ {
+ //
+ // Only relevant for AMD.
+ //
+ }
+
+ public override void throwAfterException(Ice.Current current)
+ {
+ //
+ // Only relevant for AMD.
+ //
+ throw new A();
+ }
+}