public void TestDispatching() { string pipeName = "Vkm.TestPipe4"; Test3.Counter = 0; IntercomMasterDispatcher <Test3, Test2> masterDispatcher = new IntercomMasterDispatcher <Test3, Test2>(pipeName, () => new Test3()); var callback = new Test2(); var connectedClient1 = IntercomSlaveDispatcher <Test3, Test2> .CreateSlaveChannel(callback, pipeName); Assert.AreEqual(1, Test3.Counter); var connectedClient2 = IntercomSlaveDispatcher <Test3, Test2> .CreateSlaveChannel(callback, pipeName); Assert.AreEqual(2, Test3.Counter); Assert.AreEqual(0, connectedClient1.Execute(nameof(Test3.GetInstanceIndex))); Assert.AreEqual(1, connectedClient2.Execute(nameof(Test3.GetInstanceIndex))); connectedClient1.Dispose(); Thread.Sleep(500); Assert.AreEqual(1, Test3.Counter); masterDispatcher.Dispose(); Assert.AreEqual(0, Test3.Counter); }
public void TestOneWay() { string pipeName = "Vkm.TestPipe5"; IntercomMasterDispatcher <Test4, Test2> masterDispatcher = new IntercomMasterDispatcher <Test4, Test2>(pipeName, () => new Test4()); var callback = new Test2(); var connectedClient = IntercomSlaveDispatcher <Test4, Test2> .CreateSlaveChannel(callback, pipeName); Assert.AreEqual(false, Test4.Success); connectedClient.Execute(nameof(Test4.LongMethod)); Assert.AreEqual(false, Test4.Success); Thread.Sleep(1100); Assert.AreEqual(true, Test4.Success); }
public static VkmIntercomClient Create(IVkmRemoteCallback callback) { return(new VkmIntercomClient(IntercomSlaveDispatcher <IVkmRemoteService, IVkmRemoteCallback> .CreateSlaveChannel(callback, Constants.DispatcherName))); }
public static async Task <VkmIntercomClient> CreateAsync(IVkmRemoteCallback callback) { return(new VkmIntercomClient(await IntercomSlaveDispatcher <IVkmRemoteService, IVkmRemoteCallback> .CreateSlaveChannelAsync(callback, Constants.DispatcherName))); }