Exemple #1
0
        private void DoCollectData(double data)
        {
            // actSendByName<string>.SendByName(string.Format("receive {0}",data), "Console");
            shardList.Add(data.ToString(CultureInfo.InvariantCulture));
            var ct = shardList.Count();

            Console.WriteLine("receive " + ct);
            if (ct >= 1000 - 1)
            {
                SendByName.Send("Done", "Console");
            }
        }
Exemple #2
0
        private void Behavior(Chunk msg)
        {
            fChunkList.Add(msg);
            var lastMsg = fChunkList.Where(t => t.last).FirstOrDefault();

            if ((lastMsg != null) && (fChunkList.Count - 1 == lastMsg.chunkPart))
            {
                // send complete to sender
                msg.sender.SendMessage("Download complete");
                // try to do something with this assembly
                MemoryStream ms   = new MemoryStream();
                Assembly     asm2 = null;
                try
                {
                    foreach (var item in fChunkList.OrderBy(t => t.chunkPart))
                    {
                        ms.Write(item.data, 0, item.data.Length);
                    }

                    asm2 = Assembly.Load(ms.ToArray());
                }
                finally
                {
                    ms.Dispose();
                }
                Debug.Assert(Assembly.GetExecutingAssembly() != asm2);
                Console.WriteLine(asm2.GetName());
                Console.WriteLine("Location" + asm2.Location);

                IActor asmobj = asm2.CreateInstance("Actor.Plugin.actPlugin") as IActor;

                Debug.Assert(asmobj != null);

                // register in directory

                DirectoryActor.GetDirectory().Register(asmobj, "plugin");

                asmobj.SendMessage("Hello");
                SendByName <string> .Send("by name", "plugin");
            }
        }