// Tests IEnumerator ProcessGreeter(IChannel channel, IGreeterWithObserver greeter) { WriteLine("*** Greeter ***"); var observer = channel.CreateObserver <IGreetObserver>(this); yield return(greeter.Subscribe(observer).WaitHandle); var t1 = greeter.Greet("World"); yield return(t1.WaitHandle); ShowResult(t1, "Greet(Hello)"); var t2 = greeter.Greet("Actor"); yield return(t2.WaitHandle); ShowResult(t2, "Greet(Actor)"); var t3 = greeter.GetCount(); yield return(t3.WaitHandle); ShowResult(t3, "GetCount()"); yield return(greeter.Unsubscribe(observer).WaitHandle); channel.RemoveObserver(observer); WriteLine(""); }
public static SurrogateForIGreeterWithObserver Convert(IGreeterWithObserver value) { if (value == null) { return(null); } return(new SurrogateForIGreeterWithObserver { Target = ((GreeterWithObserverRef)value).Target }); }
IEnumerator ProcessGreeterOnAnotherChannel(IGreeterWithObserver greeter) { WriteLine("*** ProcessGreeterOnAnotherChannel ***"); // Connect to secondary gateway var actorRef = (InterfacedActorRef)greeter; if (actorRef.IsChannelConnected() == false) { yield return(actorRef.ConnectChannelAsync().WaitHandle); } var channel = (IChannel)actorRef.RequestWaiter; yield return(ProcessGreeter(channel, greeter)); channel.Close(); }
public static SurrogateForIGreeterWithObserver Convert(IGreeterWithObserver value) { if (value == null) return null; return new SurrogateForIGreeterWithObserver { Target = ((GreeterWithObserverRef)value).Target }; }