public void LinkedListActorTest()
 {
     TestLauncherActor.Test(
         () =>
     {
         var ll = new LinkedListActor <string>();
         Assert.IsNotNull(ll);
     }
         );
 }
        public void LinkedListAddbehaviorTest()
        {
            TestLauncherActor.Test(
                () =>
            {
                var ll = new LinkedListActor <string>();
                Assert.IsNotNull(ll);

                ll.SendMessage(LinkedListOperation.Add, "Test1");
            }
                );
        }
        public void LinkedListFirstTest()
        {
            TestLauncherActor.Test(
                () =>
            {
                var ll = new LinkedListActor <string>();
                Assert.IsNotNull(ll);

                ll.SendMessage(LinkedListOperation.Add, "Test1");
                var future = new Future <LinkedListOperation, string>();

                ll.SendMessage(LinkedListOperation.First, (IActor)future);
                Assert.AreEqual("Test1", future.Result().Item2);
            }
                );
        }
Example #4
0
        private void DoBehavior(string msg)
        {
            Console.WriteLine("Serv Start");
            var start = DateTime.UtcNow.Ticks;

            collect = new CollectionActor <string>();
            var list = new List <string>();

            for (int i = 0; i < 10; i++)
            {
                collect.Add(i.ToString(CultureInfo.InvariantCulture));
                list.Add(i.ToString(CultureInfo.InvariantCulture));
            }

            foreach (var item in collect)
            {
                Console.WriteLine("Collect " + item);
            }

            var actForeach = new BaseActor(new ForEachBehavior <string>());

            actForeach.SendMessage <IEnumerable <string>, Action <String> >(list,
                                                                            t => Console.WriteLine("list " + t));


            Console.WriteLine("Should have work");

            var linkedlist = new LinkedListActor <string>();

            for (int i = 0; i < 100; i++)
            {
                linkedlist.SendMessage(LinkedListOperation.Add, i.ToString());
            }

            new EchoActor <Tuple <LinkedListOperation, string> >(linkedlist, Tuple.Create(LinkedListOperation.First, "5"));

            new RingActor(1000, 1000); // 10 sec

            new LinkedListActor <string>();

            IActor aServer = new EchoServerActor();

            clientList = new List <IActor>();
            for (int i = 0; i < 100; i++)
            {
                EchoClientActor aClient = new EchoClientActor();// new actEchoClient(aServer);
                // DirectoryRequest.SendRegister("client + " + i.ToString(), aClient);
                aClient.Connect("EchoServer");
                aClient.SendMessage("client-" + i.ToString(CultureInfo.InvariantCulture));
                clientList.Add(aClient);
                // aClient.Disconnect();
            }
            var end = DateTime.UtcNow.Ticks;

            Console.WriteLine("All client allocated {0}", (double)(end - start) / 10000.0);

            // basic redirection
            IActor target = new BaseActor(new Behavior <string>(t => { Console.WriteLine(t); }));
            IActor middle = new BaseActor(new Behavior <string>(t => { t = t + " augmenté"; }));

            middle.SendMessage("Bonjour");


            // dynamic use DLR to handle the send / dispatch business ...
            dynamic test = new ExpandoObject();
            dynamic dyn  = new DynamicActor(test);

            test.PrintSomething = (Action <string>)((t) => Console.WriteLine(t));
            dyn.PrintSomething("Got it !");
        }
Example #5
0
        private void DoBehavior(string msg)
        {
            Console.WriteLine(ServerStart);
            long start = DateTime.UtcNow.Ticks;

            _collect = new CollectionActor <string>();
            List <string> list = new List <string>();

            for (int i = 0; i < 10; i++)
            {
                _collect.Add(i.ToString(CultureInfo.InvariantCulture));
                list.Add(i.ToString(CultureInfo.InvariantCulture));
            }

            foreach (string item in _collect)
            {
                Console.WriteLine("Collect " + item);
            }

            BaseActor actForeach = new BaseActor(new ForEachBehavior <string>());

            actForeach.SendMessage <IEnumerable <string>, Action <String> >(list,
                                                                            t => Console.WriteLine("list " + t));

            Console.WriteLine("Should have work");

            LinkedListActor <string> linkedlist = new LinkedListActor <string>();

            for (int i = 0; i < 100; i++)
            {
                linkedlist.SendMessage(LinkedListOperation.Add, i.ToString());
            }

            new EchoActor <Tuple <LinkedListOperation, string> >(linkedlist, Tuple.Create(LinkedListOperation.First, "5"));

            new RingActor(1000, 1000); // 10 sec

            new LinkedListActor <string>();

            IActor aServer = new EchoServerActor();

            _clientList = new List <IActor>();
            for (int i = 0; i < 100; i++)
            {
                EchoClientActor aClient = new EchoClientActor();// new actEchoClient(aServer);
                // DirectoryRequest.SendRegister("client + " + i.ToString(), aClient);
                aClient.Connect("EchoServer");
                aClient.SendMessage("client-" + i.ToString(CultureInfo.InvariantCulture));
                _clientList.Add(aClient);
                // aClient.Disconnect();
            }
            long end = DateTime.UtcNow.Ticks;

            Console.WriteLine("All client allocated {0}", (end - start) / 10000.0);

            // basic redirection
            IActor target = new BaseActor(new Behavior <string>(t => Console.WriteLine(t)));
            IActor middle = new BaseActor(new Behavior <string>(t => t += " augmenté"));

            middle.SendMessage("Bonjour");
        }