diff options
Diffstat (limited to 'csharp/test/Ice/interceptor/MyObjectI.cs')
-rw-r--r-- | csharp/test/Ice/interceptor/MyObjectI.cs | 149 |
1 files changed, 149 insertions, 0 deletions
diff --git a/csharp/test/Ice/interceptor/MyObjectI.cs b/csharp/test/Ice/interceptor/MyObjectI.cs new file mode 100644 index 00000000000..38bb5d6fb77 --- /dev/null +++ b/csharp/test/Ice/interceptor/MyObjectI.cs @@ -0,0 +1,149 @@ +// ********************************************************************** +// +// 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.Threading; + +class MySystemException : Ice.SystemException +{ + public + MySystemException() + { + } + + override public string + ice_name() + { + return "MySystemException"; + } +}; + +class MyObjectI : Test.MyObjectDisp_ +{ + protected static void + test(bool b) + { + if(!b) + { + throw new Exception(); + } + } + + public override int + add(int x, int y, Ice.Current current) + { + return x + y; + } + + public override int + addWithRetry(int x, int y, Ice.Current current) + { + test(current != null); + test(current.ctx != null); + + if(current.ctx.ContainsKey("retry") && current.ctx["retry"].Equals("no")) + { + return x + y; + } + throw new Test.RetryException(); + } + + public override int + badAdd(int x, int y, Ice.Current current) + { + throw new Test.InvalidInputException(); + } + + public override int + notExistAdd(int x, int y, Ice.Current current) + { + throw new Ice.ObjectNotExistException(); + } + + public override int + badSystemAdd(int x, int y, Ice.Current current) + { + throw new MySystemException(); + } + + + // + // AMD + // + + public override void + amdAdd_async(Test.AMD_MyObject_amdAdd cb, int x, int y, Ice.Current current) + { + Thread thread = new Thread(delegate() + { + Thread.Sleep(10); + cb.ice_response(x + y); + }); + thread.IsBackground = true; + thread.Start(); + } + + public override void + amdAddWithRetry_async(Test.AMD_MyObject_amdAddWithRetry cb, int x, int y, Ice.Current current) + { + Thread thread = new Thread(delegate() + { + Thread.Sleep(10); + cb.ice_response(x + y); + }); + thread.IsBackground = true; + thread.Start(); + + if(current.ctx.ContainsKey("retry") && current.ctx["retry"].Equals("no")) + { + return; + } + else + { + throw new Test.RetryException(); + } + } + + public override void + amdBadAdd_async(Test.AMD_MyObject_amdBadAdd cb, int x, int y, Ice.Current current) + { + Thread thread = new Thread(delegate() + { + Thread.Sleep(10); + cb.ice_exception(new Test.InvalidInputException()); + }); + thread.IsBackground = true; + thread.Start(); + } + + public override void + amdNotExistAdd_async(Test.AMD_MyObject_amdNotExistAdd cb, int x, int y, Ice.Current current) + { + Thread thread = new Thread(delegate() + { + Thread.Sleep(10); + cb.ice_exception(new Ice.ObjectNotExistException()); + }); + thread.IsBackground = true; + thread.Start(); + } + + public override void + amdBadSystemAdd_async(Test.AMD_MyObject_amdBadSystemAdd cb, int x, int y, Ice.Current current) + { + Thread thread = new Thread(delegate() + { + Thread.Sleep(10); + cb.ice_exception(new MySystemException()); + }); + + thread.IsBackground = true; + thread.Start(); + } +} |