public static void OnReceaveMessage(object sender, ReceaveMessageEventArgs e) { Console.WriteLine(String.Format("Receaved message of type - {0} from sender with id = {1}", e.Message.MessageType, e.Message.SenderID.Value)); TestAsyncMessage testAsyncMessage = e.Message as TestAsyncMessage; if (testAsyncMessage != null) { Console.WriteLine("Preparing responce to the master..." + testAsyncMessage.GetType().FullName); TestAsyncMessage test = new TestAsyncMessage(new IPCReceaverGUID()); test.StrData = SlaveResponces.TestAsyncResponceString; Console.WriteLine("Forward responce to the master..."); ForwardResponce(test, testAsyncMessage.SenderID); return; } TestAsyncComplexMessage testComplexAsyncMessage = e.Message as TestAsyncComplexMessage; if (testComplexAsyncMessage != null) { Console.WriteLine("Preparing responce to the master..." + testComplexAsyncMessage.GetType().FullName); TestAsyncComplexMessage test = new TestAsyncComplexMessage(new IPCReceaverGUID(),SlaveResponces.ConstructComplexResponceTemplate()); Console.WriteLine("Forward responce to the master..."); ForwardResponce(test, testComplexAsyncMessage.SenderID); return; } TestSyncMessage testSyncMessage = e.Message as TestSyncMessage; if (testSyncMessage != null) { Console.WriteLine("Emulation of some processing"); Thread.CurrentThread.Join(SlaveResponces.SyncMessageSlaveDelay); testSyncMessage.StrOut = SlaveResponces.TestSyncResponceString; Console.WriteLine("Continue work...."); } }
public void DoReceaverNotExistsTest() { IIPCGUID receaverGUID = new IPCReceaverGUID(NonExistentPID); using (BaseIPCDispatcher dispatcher = new BaseIPCDispatcher(receaverGUID)) { TestAsyncMessage test = new TestAsyncMessage(receaverGUID); IPCDispatchResult tmpResult = dispatcher.Dispatch(test); Assert.IsTrue(tmpResult == IPCDispatchResult.ReceaverNotExists, "Receaver not exists but dispatch result is {0}", tmpResult); } }