summaryrefslogtreecommitdiff
path: root/csharp/test/Ice/acm/TestI.cs
diff options
context:
space:
mode:
Diffstat (limited to 'csharp/test/Ice/acm/TestI.cs')
-rw-r--r--csharp/test/Ice/acm/TestI.cs113
1 files changed, 113 insertions, 0 deletions
diff --git a/csharp/test/Ice/acm/TestI.cs b/csharp/test/Ice/acm/TestI.cs
new file mode 100644
index 00000000000..bb02117c99d
--- /dev/null
+++ b/csharp/test/Ice/acm/TestI.cs
@@ -0,0 +1,113 @@
+// **********************************************************************
+//
+// 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 Test;
+
+public class RemoteCommunicatorI : RemoteCommunicatorDisp_
+{
+ public override RemoteObjectAdapterPrx
+ createObjectAdapter(int timeout, int close, int heartbeat, Ice.Current current)
+ {
+ Ice.Communicator com = current.adapter.getCommunicator();
+ Ice.Properties properties = com.getProperties();
+ string protocol = properties.getPropertyWithDefault("Ice.Default.Protocol", "tcp");
+ string host = properties.getPropertyWithDefault("Ice.Default.Host", "127.0.0.1");
+
+ string name = System.Guid.NewGuid().ToString();
+ if(timeout >= 0)
+ {
+ properties.setProperty(name + ".ACM.Timeout", timeout.ToString());
+ }
+ if(close >= 0)
+ {
+ properties.setProperty(name + ".ACM.Close", close.ToString());
+ }
+ if(heartbeat >= 0)
+ {
+ properties.setProperty(name + ".ACM.Heartbeat", heartbeat.ToString());
+ }
+ properties.setProperty(name + ".ThreadPool.Size", "2");
+ Ice.ObjectAdapter adapter = com.createObjectAdapterWithEndpoints(name, protocol + " -h \"" + host + "\"");
+ return RemoteObjectAdapterPrxHelper.uncheckedCast(current.adapter.addWithUUID(new RemoteObjectAdapterI(adapter)));
+ }
+
+ public override void
+ shutdown(Ice.Current current)
+ {
+ current.adapter.getCommunicator().shutdown();
+ }
+};
+
+public class RemoteObjectAdapterI : RemoteObjectAdapterDisp_
+{
+ public RemoteObjectAdapterI(Ice.ObjectAdapter adapter)
+ {
+ _adapter = adapter;
+ _testIntf = TestIntfPrxHelper.uncheckedCast(_adapter.add(new TestI(),
+ _adapter.getCommunicator().stringToIdentity("test")));
+ _adapter.activate();
+ }
+
+ public override TestIntfPrx getTestIntf(Ice.Current current)
+ {
+ return _testIntf;
+ }
+
+ public override void activate(Ice.Current current)
+ {
+ _adapter.activate();
+ }
+
+ public override void hold(Ice.Current current)
+ {
+ _adapter.hold();
+ }
+
+ public override void deactivate(Ice.Current current)
+ {
+ try
+ {
+ _adapter.destroy();
+ }
+ catch(Ice.ObjectAdapterDeactivatedException)
+ {
+ }
+ }
+
+ private Ice.ObjectAdapter _adapter;
+ private TestIntfPrx _testIntf;
+};
+
+public class TestI : TestIntfDisp_
+{
+ public override void sleep(int delay, Ice.Current current)
+ {
+ lock(this)
+ {
+ System.Threading.Monitor.Wait(this, delay * 1000);
+ }
+ }
+
+ public override void sleepAndHold(int delay, Ice.Current current)
+ {
+ lock(this)
+ {
+ current.adapter.hold();
+ System.Threading.Monitor.Wait(this, delay * 1000);
+ }
+ }
+
+ public override void interruptSleep(Ice.Current current)
+ {
+ lock(this)
+ {
+ System.Threading.Monitor.PulseAll(this);
+ }
+ }
+};