Example #1
0
        private static void Main(string[] args)
        {
            var requestWaiter = new SlimRequestWaiter {
                Root = new Uri("http://localhost:9000")
            };

            // Greeter

            Console.WriteLine("\n*** Greeter ***");

            var greeter = new GreeterRef(new SlimActorTarget("greeter"), requestWaiter, null);

            PrintResult(greeter.Greet("World"));
            PrintResult(greeter.Greet("Actor"));
            PrintResult(greeter.GetCount());

            // Calculator

            Console.WriteLine("\n*** Calculator ***");

            var calculator = new CalculatorRef(new SlimActorTarget("calculator"), requestWaiter, null);

            PrintResult(calculator.Concat("Hello", "World"));
            PrintResult(calculator.Concat(null, "Error"));
            PrintResult(calculator.Sum(1, 2));

            // Counter

            Console.WriteLine("\n*** Counter ***");

            var counter = new CounterRef(new SlimActorTarget("counter"), requestWaiter, null);

            counter.IncCounter(1);
            counter.IncCounter(2);
            counter.IncCounter(3);
            PrintResult(counter.GetCounter());

            // Pedantic

            Console.WriteLine("\n*** Pedantic ***");

            var pedantic = new PedanticRef(new SlimActorTarget("pedantic"), requestWaiter, null);

            pedantic.TestCall().Wait();
            PrintResult(pedantic.TestOptional(null));
            PrintResult(pedantic.TestOptional(1));
            PrintResult(pedantic.TestTuple(Tuple.Create(1, "One")));
            PrintResult(pedantic.TestParams(1, 2, 3));
            PrintResult(pedantic.TestPassClass(new TestParam {
                Name = "Mouse", Price = 10
            }));
            PrintResult(pedantic.TestReturnClass(1, 2));
        }
        async Task <ICounter> IEntry.GetCounter()
        {
            CounterRef counter = Context.InterfacedActorOf <CounterActor>().Cast <CounterRef>();

            return((await _channel.BindActor(counter)).Cast <CounterRef>());
        }