Пример #1
0
 public void TestShardRun()
 {
     TestLauncherActor.Test(() =>
     {
         ActorServer.Start(ActorConfigManager.CastForTest());
         new ShardDirectoryClientTest();
     });
 }
Пример #2
0
 public void TestShardRun()
 {
     TestLauncherActor.Test(() =>
     {
         ActorServer.Start("localhost", 80, new HostRelayActor());
         new ShardDirectoryClientTest();
     });
 }
Пример #3
0
 public void DiscoTest()
 {
     TestLauncherActor.Test(() =>
     {
         ActorServer.Start(ActorConfigManager.CastForTest());
         var act = new DiscoTestActor(fLauncher);
         DirectoryActor.GetDirectory().Disco(act);
     }
                            );
 }
Пример #4
0
 public void DiscoTest()
 {
     TestLauncherActor.Test(() =>
     {
         ActorServer.Start("localhost", 80, null);
         var act = new DiscoTestActor(fLauncher);
         DirectoryActor.GetDirectory().Disco(act);
     }
                            );
 }
 public void DiscoTest()
 {
     ActorServer.Start("localhost", 80, null);
     fLauncher.SendAction(() =>
     {
         var act = new DiscoTestActor(fLauncher);
         DirectoryActor.GetDirectory().Disco(act);
         fLauncher.Finish();
     }
                          );
     Assert.IsTrue(fLauncher.Wait());
 }
Пример #6
0
        static void Main(string[] args)
        {
            ActorServer.Start(new ActorConfigManager());
            Console.WriteLine("Starting FSM");

            BaseActor fsm = new Chain();

            fsm += Tuple.Create(1000, 4, 1000);

            Console.WriteLine("End of FSM");
            Console.ReadLine();
        }
Пример #7
0
        static void Main(string[] args)
        {
            ActorServer.Start("localhost", 80, null);
            Console.WriteLine("Starting FSM");

            BaseActor fsm = new Chain();

            fsm += Tuple.Create(1000, 4, 1000);

            Console.WriteLine("End of FSM");
            Console.ReadLine();
        }
Пример #8
0
 public void ParserActorTest()
 {
     TestLauncherActor.Test(() =>
     {
         ActorServer.Start(ActorConfigManager.CastForTest());
         var parserTest = new ParserTest();
         var receiver   = new TestReceiver();
         parserTest.SendMessage((IActor)receiver);
         var future = receiver.GetResult().Result();
         Assert.IsTrue(future.Any());
         Assert.IsTrue(future.Contains("Max"));
     });
 }
        private void DoDiscoveryActorTest()
        {
            ConfigurationManager.AppSettings["ListenerService"]  = "MemoryListenerService";
            ConfigurationManager.AppSettings["SerializeService"] = "NetDataContractSerializeService";
            ActorServer.Start("localhost", 80, new HostRelayActor());
            var future = new Future <Dictionary <string, string> >();
            var disco  = new DiscoveryActor("localhost", future);
            var result = future.Result(5000);

            Assert.IsNotNull(result);
            Assert.IsTrue(result.Count == 3);
            Assert.IsTrue(result.Keys.Contains("KnownShards"));
        }
Пример #10
0
            private void DoStart(string msg)
            {
                // find shard in directory
                ConnectActor connect  = new ConnectActor(this, ActorServer.GetInstance().FullHost, "KnownShards");
                var          data     = Receive(ans => { return(ans is IMessageParam <string, ActorTag, IActor>); });
                var          res      = data.Result as IMessageParam <string, ActorTag, IActor>;
                var          shardDir = res.Item3;

                Assert.IsNotNull(shardDir);
                ShardRequest req = ShardRequest.CastRequest(this, this);

                shardDir.SendMessage(req);
                Become(new Behavior <ShardRequest>(WaitAns));
            }
Пример #11
0
 public void ParserActorTest()
 {
     TestLauncherActor.Test(() =>
     {
         ConfigurationManager.AppSettings["ListenerService"]  = "MemoryListenerService";
         ConfigurationManager.AppSettings["SerializeService"] = "NetDataContractSerializeService";
         ActorServer.Start("localhost", 80, new HostRelayActor());
         var parserTest = new ParserTest();
         var receiver   = new TestReceiver();
         parserTest.SendMessage((IActor)receiver);
         var future = receiver.GetResult().Result();
         Assert.IsTrue(future.Any());
         Assert.IsTrue(future.Contains("Max"));
     });
 }
Пример #12
0
        public void TestSerializeActor()
        {
            TestLauncherActor.Test(() =>
            {
                ActorServer.Start("123", 80, null);
                var tst1 = new Test1()
                {
                    Name = "TestName1"
                };
                var tst2 = new Test1()
                {
                    Name = "TestName2"
                };
                var lst = new List <IActor>
                {
                    tst1,
                    tst2
                };

                // serialize
                BaseActor actor = new BaseActor();
                SerialObject so = new SerialObject(lst, actor.Tag);
                NetDataContractSerializer dcs = new NetDataContractSerializer()
                {
                    SurrogateSelector = new ActorSurrogatorSelector(),
                    Binder            = new ActorBinder()
                };
                using (MemoryStream ms = new MemoryStream())
                {
                    dcs.Serialize(ms, so);

                    ms.Seek(0, SeekOrigin.Begin);
                    Object obj          = dcs.ReadObject(ms);
                    SerialObject soread = (SerialObject)obj;

                    var lst2 = (List <IActor>)soread.Data;

                    Assert.AreEqual(2, lst2.Count);
                    var l1 = (RemoteSenderActor)(lst2.First());
                    var l2 = (RemoteSenderActor)(lst2.Last());

                    Assert.AreEqual(so.Tag.Key(), soread.Tag.Key());

                    Assert.AreEqual(tst1.Tag.Key(), l1.fRemoteTag.Key());
                    Assert.AreEqual(tst2.Tag.Key(), l2.fRemoteTag.Key());
                }
            }, 30000);
        }
Пример #13
0
        private void DoDiscoveryActorTest()
        {
            const string localHost = "http://localhost:80";
            var          uri       = new Uri(localHost);

            ConfigurationManager.AppSettings["ListenerService"]  = "MemoryListenerService";
            ConfigurationManager.AppSettings["SerializeService"] = "NetDataContractSerializeService";
            ActorServer.Start(ActorConfigManager.CastForTest());
            var future = new Future <Dictionary <string, string> >();

            new DiscoveryActor(uri.AbsoluteUri, future);
            var result = future.Result(60000);

            Assert.IsNotNull(result);
            Assert.IsTrue(result.Count >= 3, $"result is {result.Count}");
            Assert.IsTrue(result.Keys.Contains("KnownShards"));
        }
Пример #14
0
        public void EchoClient100Test()
        {
            GlobalContext.MessageTracerService = new MemoryMessageTracerService();
            TestLauncherActor.Test(() =>
            {
                ActorServer.Start(ConfigManager.CastForTest());
                new EchoServerActor();
                for (int i = 0; i < 5; i++)
                {
                    EchoClientActor aClient = new EchoClientActor();
                    aClient.Connect("EchoServer");
                    aClient.SendMessage("client-" + i.ToString());
                }
                Task.Delay(10000).Wait();
            }, 15000);
            var mess = GlobalContext.MessageTracerService.CopyAllMessages();

            Assert.IsTrue(mess.Count(t => t.StartsWith("client receive")) >= 1);
        }
        public void RegisterUnregisterTestV2()
        {
            TestLauncherActor.Test(() =>
            {
                ConfigurationManager.AppSettings["ListenerService"]  = "MemoryListenerService";
                ConfigurationManager.AppSettings["SerializeService"] = "NetDataContractSerializeService";
                ActorServer.Start("localhost", 80, new HostRelayActor());
                var actor = new StateFullActor <string>();
                HostDirectoryActor.Register(actor);
                Task.Delay(5000).Wait();
                var stat = HostDirectoryActor.GetInstance().GetEntries();
                Assert.IsTrue(stat.Count(t => t == actor.Tag.Key()) == 1);

                HostDirectoryActor.Unregister(actor);
                Task.Delay(5000).Wait();
                var stat2 = HostDirectoryActor.GetInstance().GetEntries();
                Assert.IsTrue(stat2.Count(t => t == actor.Tag.Key()) == 0);
            });
        }
Пример #16
0
        private void DoDiscoTest()
        {
            ConfigurationManager.AppSettings["ListenerService"]  = "MemoryListenerService";
            ConfigurationManager.AppSettings["SerializeService"] = "NetDataContractSerializeService";
            ActorServer.Start("localhost", 80, new HostRelayActor());
            IActor actor1 = new TestHostRelayActor();

            DiscoCommand      disco  = new DiscoCommand(actor1);
            RemoteSenderActor remote = new RemoteSenderActor(actor1.Tag);

            remote.SendMessage(disco);

            IFuture <IEnumerable <string> > future = new Future <IEnumerable <string> >();

            actor1.SendMessage(future);
            var result1 = future.Result();

            Assert.IsTrue(result1.Count() == 3);
        }
Пример #17
0
        public void RegisterUnregisterTestV2()
        {
            TestLauncherActor.Test(() =>
            {
                ActorServer.Start(ActorConfigManager.CastForTest());
                var actor = new StateFullActor <string>();

                HostDirectoryActor.Register(actor);
                Task.Delay(5000).Wait();
                var stat = HostDirectoryActor.GetInstance().GetEntries();
                Assert.IsTrue(stat.Count(t => t == actor.Tag.Key()) == 1);

                HostDirectoryActor.Unregister(actor);
                Task.Delay(5000).Wait();
                var stat2 = HostDirectoryActor.GetInstance().GetEntries();
#pragma warning disable CA1827                                              // Do not use Count() or LongCount() when Any() can be used
                Assert.IsTrue(stat2.Count(t => t == actor.Tag.Key()) == 0); // don't touch
#pragma warning restore CA1827                                              // Do not use Count() or LongCount() when Any() can be used
            });
        }
Пример #18
0
        public void RegisterUnregisterTest()
        {
            TestLauncherActor.Test(() =>
            {
                ActorServer.Start(ActorConfigManager.CastForTest());
                var actor = new StateFullActor <string>();
                HostDirectoryActor.Register(actor);
                SerialObject so = new SerialObject(new MessageParam <StateAction, string>(StateAction.Set, "Test"), actor.Tag);
                HostDirectoryActor.GetInstance().SendMessage(so);
                Task.Delay(5000).Wait();
                var result = actor.GetStateAsync(5000).Result;
                Assert.AreEqual(result, "Test");

                HostDirectoryActor.Unregister(actor);
                SerialObject so2 = new SerialObject(new MessageParam <StateAction, string>(StateAction.Set, "Test2"), actor.Tag);
                HostDirectoryActor.GetInstance().SendMessage(so2);
                Task.Delay(5000).Wait();
                var result2 = actor.GetStateAsync(5000).Result;
                Assert.AreEqual("Test", result2, string.Format(CultureInfo.InvariantCulture, "Expected {0} Found {1}", "Test", result2));
            });
        }
Пример #19
0
        public actHostRelay()
        {
            Listener = new HttpListener();
            var localhost  = Dns.GetHostName();
            var servername = ActorServer.GetInstance().Name;
            var prefix     = "http://";
            var suffix     = ":" + ActorServer.GetInstance().Port.ToString();

            Listener.Prefixes.Add(prefix + localhost + suffix + "/" + servername + "/");
            Listener.Prefixes.Add(prefix + "127.0.0.1" + suffix + "/" + servername + "/");
            try
            {
                Listener.Start();
            }
            catch (Exception e)
            {
                Debug.WriteLine("Can't start http " + e);
            }
            Become(new bhvBehavior <String>(t => { return("Listen".Equals(t)); }, DoListen));
            SendMessage("Listen");
        }
Пример #20
0
        public void EchoClient100Test()
        {
            GlobalContext.MessageTracerService = new MemoryMessageTracerService();
            TestLauncherActor.Test(() =>
            {
                ActorServer.Start(ActorConfigManager.CastForTest());
                new EchoServerActor();
                for (int i = 0; i < 5; i++)
                {
                    EchoClientActor aClient = new EchoClientActor();
                    aClient.Connect("EchoServer");
                    aClient.SendMessage($"client-{i}");
                }
                Task.Delay(10000).Wait();
            }, 15000);
            var mess = GlobalContext.MessageTracerService.CopyAllMessages();

#pragma warning disable CA1827 // Do not use Count() or LongCount() when Any() can be used
            Assert.IsTrue(mess.Count(t => t.StartsWith("client receive", StringComparison.InvariantCulture)) >= 1);
#pragma warning restore CA1827 // Do not use Count() or LongCount() when Any() can be used
        }
        public void RegisterUnregisterTest()
        {
            TestLauncherActor.Test(() =>
            {
                ConfigurationManager.AppSettings["ListenerService"]  = "MemoryListenerService";
                ConfigurationManager.AppSettings["SerializeService"] = "NetDataContractSerializeService";
                ActorServer.Start("localhost", 80, new HostRelayActor());
                var actor = new StateFullActor <string>();
                HostDirectoryActor.Register(actor);
                SerialObject so = new SerialObject(new MessageParam <StateAction, string>(StateAction.Set, "Test"), actor.Tag);
                HostDirectoryActor.GetInstance().SendMessage(so);
                var result = actor.GetAsync(10000).Result;
                Assert.AreEqual(result, "Test");

                HostDirectoryActor.Unregister(actor);
                SerialObject so2 = new SerialObject(new MessageParam <StateAction, string>(StateAction.Set, "Test2"), actor.Tag);
                HostDirectoryActor.GetInstance().SendMessage(so2);
                var result2 = actor.GetAsync(10000).Result;
                Assert.AreEqual("Test", result2, string.Format(CultureInfo.InvariantCulture, "Expected {0} Found {1}", "Test", result2));
            });
        }
Пример #22
0
 private void Form1_Load(object sender, EventArgs e)
 {
     ActorServer.Start("localhost", 80, null);
     catcher = new StringToEventCatcherActor();
 }
Пример #23
0
 private void Form1_Load(object sender, EventArgs e)
 {
     ActorServer.Start(new ActorConfigManager());
     catcher = new StringToEventCatcherActor();
 }
Пример #24
0
        static void Main(string[] args)
        {
            string lName = "";
            string lPort = "";

            if (args.Length > 0)
            {
                lName = args.FirstOrDefault(t => t.StartsWith("-n:"));
                lPort = args.FirstOrDefault(t => t.StartsWith("-p:"));
            }
            if (!string.IsNullOrEmpty(lName))
            {
                lName = lName.Replace("-n:", "");
            }
            else
            {
                lName = "ARnActorServer";
            }

            if (!String.IsNullOrEmpty(lPort))
            {
                lPort = lPort.Replace("-p:", "");
            }
            else
            {
                lPort = "80";
            }

            ActorServer.Start(lName, int.Parse(lPort), new HostRelayActor());
            IActor fMain = new ActorMain();

            // new actActionReceiver().ConsoleWrite("Welcome in an action world");

            //var Input = new SDRInput("Machine") ;
            //var Region = new HTMRegion(Input);

            string s = string.Empty;

            do
            {
                s = Console.ReadLine();
                if (!string.IsNullOrEmpty(s))
                {
                    switch (s)
                    {
                    case "Many": { fMillion = new actMillion(); break; }

                    case "SendMany": { fMillion.Send(); break; }

                    case "quit": break;

                    case "Col":
                    {
                        var fLauncher = new TestLauncherActor();
                        fLauncher.SendAction(() =>
                            {
                                var collect = new CollectionActor <string>();
                                for (int i = 0; i < 100; i++)
                                {
                                    collect.Add(string.Format("Test {0}", i));
                                }
                                if (collect.Count() != 100)
                                {
                                    throw new Exception("failed");
                                }
                                // try to enum
                                var enumerable = collect.ToList();
                                if (enumerable.Count != 100)
                                {
                                    throw new ActorException("failed");
                                }
                                // try a query
                                var query = from col in collect
                                            where col.Contains('1')
                                            select col;
                                if (query.Count() != 19)
                                {
                                    throw new ActorException("failed");
                                }
                                fLauncher.Finish();
                            });
                        fLauncher.Wait();
                        break;
                    }

                    case "Ring":
                    {
                        new RingActor(10000, 10000);         // 30 sec
                        break;
                    }

                    case "Rings":
                    {
                        Console.Write("Enter ring size : ");
                        var rs = Console.ReadLine();
                        Console.Write("Enter cycle : ");
                        var cy = Console.ReadLine();
                        int.TryParse(rs, out int r);
                        int.TryParse(cy, out int y);
                        new RingActor(y, r);         // 30 sec
                        break;
                    }

                    case "Clients":
                    {
                        var    start   = DateTime.UtcNow.Ticks;
                        IActor aServer = new EchoServerActor();
                        for (int i = 0; i < 1000; i++)
                        {
                            EchoClientActor aClient = new EchoClientActor();        // new actEchoClient(aServer);
                                                                                    // DirectoryRequest.SendRegister("client + " + i.ToString(), aClient);
                            aClient.Connect("EchoServer");
                            aClient.SendMessage("client-" + i.ToString());
                            // aClient.Disconnect();
                        }
                        var end = DateTime.UtcNow.Ticks;
                        Console.WriteLine("All client allocated {0}", (double)(end - start) / 10000.0);
                        break;
                    }

                    case "Download":
                    {
                        Console.WriteLine("trying Download");
                        IActor down = new ActorDownloadTest();
                        break;
                    }

                    //case "Brain":
                    //    {
                    //        Console.Write("Enter word : ");
                    //        var s2 = Console.ReadLine();
                    //        Input.SetData(s2);
                    //        Region.Run();
                    //        Region.Print();
                    //        break;
                    //    }
                    //case "Learn":
                    //    {
                    //        Input.SetData("Hello world ! ") ;
                    //        for (int i = 0; i < 100; i++)
                    //        {
                    //            Region.Run();
                    //            Region.Print();
                    //        }
                    //        break;
                    //    }
                    case "Pricing":
                    {
                        new ActorScheduler();
                        break;
                    }

                    case "ParserTest":
                    {
                        new EchoActor(new ParserTest(), "");
                        break;
                    }

                    default:
                    {
                        new EchoActor(new ActorAdminServer(), s);
                        break;
                    }
                    }
                }
            } while (s != "quit");
        }
Пример #25
0
 private void Window_Loaded(object sender, RoutedEventArgs e)
 {
     ActorServer.Start("localhost", 80, null);
 }
Пример #26
0
 private void Window_Loaded(object sender, RoutedEventArgs e)
 {
     ActorServer.Start(new ActorConfigManager());
 }
Пример #27
0
 public LoggerBehavior() : base()
 {
     DoInit(ActorServer.GetInstance().Name);
 }