Ejemplo n.º 1
0
        public ParserActor()
            : base()
        {
            var collect = new Behavior <IActor, string>((a, s) =>
            {
                fList.Add(s);
                Console.WriteLine("parsed {0}", s);
            }
                                                        );
            var connect = new Behavior <ActorTag>(t => fParserServer = t);
            var parse   = new Behavior <IEnumerable <string> >(t =>
            {
                IActor aServer = null;
                if (fParserServer == null)
                {
                    aServer       = new ParserServer();
                    fParserServer = aServer.Tag;
                }
                else
                {
                    aServer = new ConnectActor(this, fParserServer.Host, "ParserServer");
                }
                foreach (string s in t)
                {
                    aServer.SendMessage(this, s);
                }
            }
                                                               );

            Become(collect);
            AddBehavior(connect);
            AddBehavior(parse);
        }
Ejemplo n.º 2
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));
            }