public virtual CodeTypeDeclaration Serialize (IDesignerSerializationManager manager, object root, ICollection members)
		{
			if (root == null)
				throw new ArgumentNullException ("root");
			if (manager == null)
				throw new ArgumentNullException ("manager");

			RootContext rootContext = new RootContext (new CodeThisReferenceExpression (), root);
			StatementContext statementContext = new StatementContext ();
			if (members != null)
				statementContext.StatementCollection.Populate (members);
			statementContext.StatementCollection.Populate (root);
			CodeTypeDeclaration declaration = new CodeTypeDeclaration (manager.GetName (root));

			manager.Context.Push (rootContext);
			manager.Context.Push (statementContext);
			manager.Context.Push (declaration);

			if (members != null) {
				foreach (object member in members)
					base.SerializeToExpression (manager, member);
			}
			base.SerializeToExpression (manager, root);

			manager.Context.Pop ();
			manager.Context.Pop ();
			manager.Context.Pop ();

			return declaration;
		}
Exemple #2
0
 public static Context Init(params Context[] contexts)
 {
     RootContext rootContext = new RootContext();
     rootContext.MapBindings();
     foreach(Context context in contexts)
     {
         rootContext.AddContext(context);
     }
     rootContext.InstantiateBindings();
     return rootContext;
 }
        private static async Task Main(string[] args)
        {
            var context = new RootContext(new ActorSystem());
            var props   = Props.FromFunc(ctx => {
                if (ctx.Message is string)
                {
                    ctx.Respond("hey");
                }
                return(Task.CompletedTask);
            }
                                         );
            var pid = context.Spawn(props);

            var reply = await context.RequestAsync <object>(pid, "hello");

            Console.WriteLine(reply);
            Console.ReadLine();
        }
Exemple #4
0
        public RootViewModel(IEventAggregator events, INavigator navigator, ITheaterApplicationHost appHost, IServerConnectionManager serverManager, RootContext rootContext)
        {
            _navigator = navigator;
            _serverManager = serverManager;
            _rootContext = rootContext;
            Notifications = new NotificationTrayViewModel(events);
            Commands = new CommandBarViewModel(appHost, navigator);
            Clock = new ClockViewModel();
            IsInFocus = true;

            events.Get<ShowPageEvent>().Subscribe(message => ActivePage = message.ViewModel);
            events.Get<PlaybackStopEventArgs>().Subscribe(message => IsInternalMediaPlaying = false);
            events.Get<PlaybackStartEventArgs>().Subscribe(message => {
                if (message.Player is IInternalMediaPlayer && message.Player is IVideoPlayer && message.Options.Items[0].IsVideo) {
                    IsInternalMediaPlaying = true;
                }
            });
        }
Exemple #5
0
        private static void TestConsistentHashGroup()
        {
            var context = new RootContext();
            var props   = Router.NewConsistentHashGroup(
                context.Spawn(MyActorProps),
                context.Spawn(MyActorProps),
                context.Spawn(MyActorProps),
                context.Spawn(MyActorProps)
                );
            var pid = context.Spawn(props);

            for (var i = 0; i < 10; i++)
            {
                context.Send(pid, new Message {
                    Text = $"{i % 4}"
                });
            }
        }
Exemple #6
0
        static async Task Main(string[] args)
        {
            var log = LoggerFactory.Create(x => x.AddConsole().SetMinimumLevel(LogLevel.Debug));

            Log.SetLoggerFactory(log);
            Console.WriteLine("Starting Node2");

            var system        = new ActorSystem();
            var serialization = new Serialization();
            var context       = new RootContext(system);

            serialization.RegisterFileDescriptor(ProtosReflection.Descriptor);
            var Cluster = new Cluster(system, serialization);

            var props = Props.FromFunc(
                ctx =>
            {
                switch (ctx.Message)
                {
                case HelloRequest _:
                    ctx.Respond(new HelloResponse {
                        Message = "Hello from node 2"
                    });
                    break;
                }

                return(Actor.Done);
            }
                );

            var parsedArgs = ParseArgs(args);

            Cluster.Remote.RegisterKnownKind("HelloKind", props);

            // CONSUL
            await Cluster.StartMemberAsync(
                "MyCluster", "node2", 12000, new ConsulProvider(new ConsulProviderOptions(), c => c.Address = new Uri("http://consul:8500/"))
                );

            await Task.Delay(-1);

            Console.WriteLine("Shutting Down...");
            await Cluster.ShutdownAsync();
        }
        private static void Main(string[] args)
        {
            var childProps = Props.FromFunc(context => {
                Console.WriteLine($"{context.Self.Id}: MSG: {context.Message.GetType()}");

                switch (context.Message)
                {
                case Started _:
                    throw new Exception("child failure");
                }

                return(Task.CompletedTask);
            }
                                            );

            var rootProps = Props.FromFunc(context => {
                Console.WriteLine($"{context.Self.Id}: MSG: {context.Message.GetType()}");

                switch (context.Message)
                {
                case Started _:
                    context.SpawnNamed(childProps, "child");
                    break;

                case Terminated terminated:
                    Console.WriteLine($"Terminated {terminated.Who}");
                    break;
                }

                return(Task.CompletedTask);
            }
                                           )
                            .WithChildSupervisorStrategy(new OneForOneStrategy((pid, reason) => SupervisorDirective.Escalate, 0,
                                                                               null
                                                                               )
                                                         );

            var rootContext = new RootContext(new ActorSystem());

            rootContext.SpawnNamed(rootProps, "root");

            Console.ReadLine();
        }
        public void TestMethodOnObjectPostHookCallback()
        {
            var tc    = new testClass();
            var ctx   = new RootContext();
            int count = 0;

            ctx.ExecutionContext.AddPostCallHook("CallNoArgs", "test", (obj, result) =>
            {
                count++;
                Assert.AreEqual(tc, obj, "object that is passed in as central object");
                Assert.AreEqual(5, result, "Result not passed correctly");
                return(result);
            });
            ctx.SetVariableValue("p", tc);
            var mc = new MethodCallExpression(new VariableValue("p"), new FunctionExpression("CallNoArgs", new IExpression[] { }));
            var r  = mc.Evaluate(ctx);

            Assert.AreEqual(1, count, "# of times the callback was called");
        }
        private static void TestBroadcastGroup()
        {
            var system  = new ActorSystem();
            var context = new RootContext(system);
            var props   = context.NewBroadcastGroup(
                context.Spawn(MyActorProps),
                context.Spawn(MyActorProps),
                context.Spawn(MyActorProps),
                context.Spawn(MyActorProps)
                );

            for (var i = 0; i < 10; i++)
            {
                var pid = context.Spawn(props);
                context.Send(pid, new Message {
                    Text = $"{i % 4}"
                });
            }
        }
Exemple #10
0
        public void ScriptFileSameWhenRunning()
        {
            if (Directory.Exists("ScriptFileSameWhenRunning"))
            {
                Directory.Delete("ScriptFileSameWhenRunning", true);
            }

            var dirinfo = Directory.CreateDirectory("ScriptFileSameWhenRunning");

            File.Copy("LoadFileWithSideEffects.plotlingo", @"ScriptFileSameWhenRunning\effects.plotlingo");

            var f = new FunctionExpression("include", new IExpression[] { new StringValue("effects.plotlingo") });
            var c = new RootContext();

            c.ExecutionContext.ScriptFileContextPush(new FileInfo(string.Format(@"{0}\bogus.plotlingo", dirinfo.FullName)));
            var r = f.Evaluate(c);

            Assert.AreEqual("bogus.plotlingo", c.ExecutionContext.CurrentScriptFile.Name, "Current script filename");
        }
Exemple #11
0
        public void LoadFromMainScriptDirectory()
        {
            if (Directory.Exists("LoadFromMainScriptDirectory"))
            {
                Directory.Delete("LoadFromMainScriptDirectory", true);
            }

            var dirinfo = Directory.CreateDirectory("LoadFromMainScriptDirectory");

            File.Copy("LoadFileWithSideEffects.plotlingo", @"LoadFromMainScriptDirectory\effects.plotlingo");

            var f = new FunctionExpression("include", new IExpression[] { new StringValue("effects.plotlingo") });
            var c = new RootContext();

            c.ExecutionContext.ScriptFileContextPush(new FileInfo(string.Format(@"{0}\bogus.plotlingo", dirinfo.FullName)));
            var r = f.Evaluate(c);

            Assert.AreEqual(5, c.GetVariableValue("i"), "variable i");
        }
        public void TestAddGoodMatchingMatricies()
        {
            var d1 = new Dictionary <object, object>();

            d1["hi"] = 10;
            var d2 = new Dictionary <object, object>();

            d2["hi"] = 7;

            var cl = new FunctionExpression("+", new ObjectValue(d1), new ObjectValue(d2));
            var c  = new RootContext();
            var r  = cl.Evaluate(c);

            Assert.IsInstanceOfType(r, typeof(Dictionary <object, object>), "type of result");
            var rut = r as Dictionary <object, object>;

            Assert.AreEqual(1, rut.Count, "# of items");
            Assert.AreEqual(17, rut["hi"], "value of hi");
        }
Exemple #13
0
        public void DictForVarSet2Values()
        {
            var loop1 = new Dictionary <object, object>()
            {
                { "a", 10 },
                { "b", 5 }
            };
            var loopdict = new ObjectValue(new Dictionary <object, object>[] { loop1 });

            var statement1    = new ExpressionStatement(new FunctionExpression("+", new VariableValue("a"), new VariableValue("b")));
            var exprStatement = new ListOfStatementsExpression(new IStatement[] { statement1 });

            var forLoop = new FunctionExpression("for", loopdict, exprStatement);

            var c = new RootContext();
            var r = forLoop.Evaluate(c);

            Assert.AreEqual(15, r, "for loop with nothing in it");
        }
Exemple #14
0
        public void StringWithDictReference()
        {
            var allvals = new Tuple <IExpression, IExpression>[] {
                new Tuple <IExpression, IExpression>(new StringValue("hi"), new StringValue("there")),
                new Tuple <IExpression, IExpression>(new StringValue("no"), new StringValue("way")),
            };
            var d = new Dictionary <object, object>();

            d["hi"] = "there";
            d["no"] = "way";
            var c = new RootContext();

            //c.SetVariableValue("dict", new DictionaryValue(allvals));
            c.SetVariableValue("dict", d);
            var s   = new StringValue("hi {dict[\"hi\"]} on my {dict[\"no\"]}.");
            var mys = s.Evaluate(c);

            Assert.AreEqual("hi there on my way.", mys);
        }
        public void TestDivideByDisjointMatrixDenom()
        {
            var d1 = new Dictionary <object, object>();

            d1["hi"] = 5.0;
            var d2 = new Dictionary <object, object>();

            d2["hi"]    = 5.0;
            d2["there"] = 10.0;
            var cl  = new FunctionExpression("/", new ObjectValue(d1), new ObjectValue(d2));
            var c   = new RootContext();
            var rut = cl.Evaluate(c);

            Assert.IsNotNull(rut, "Result null");
            Assert.IsInstanceOfType(rut, typeof(Dictionary <object, object>), "Type of result");
            var r = rut as Dictionary <object, object>;

            Assert.AreEqual(1.0, r["hi"], "Resulting value");
        }
Exemple #16
0
    static void Main(string[] args)
    {
        var context = new RootContext();
        //Registering "knownTypes" is not required, but improves performance as those messages
        //do not need to pass any typename manifest
        var wire = new WireSerializer(new [] { typeof(Ping), typeof(Pong), typeof(StartRemote), typeof(Start) });

        Serialization.RegisterSerializer(wire, true);

        Remote.Start("127.0.0.1", 12001);

        var messageCount = 1000000;
        var wg           = new AutoResetEvent(false);
        var props        = Props.FromProducer(() => new LocalActor(0, messageCount, wg));

        var pid    = context.Spawn(props);
        var remote = new PID("127.0.0.1:12000", "remote");

        context.RequestAsync <Start>(remote, new StartRemote {
            Sender = pid
        }).Wait();

        var start = DateTime.Now;

        Console.WriteLine("Starting to send");
        var msg = new Ping();

        for (var i = 0; i < messageCount; i++)
        {
            context.Send(remote, msg);
        }
        wg.WaitOne();
        var elapsed = DateTime.Now - start;

        Console.WriteLine("Elapsed {0}", elapsed);

        var t = messageCount * 2.0 / elapsed.TotalMilliseconds * 1000;

        Console.WriteLine("Throughput {0} msg / sec", t);

        Console.ReadLine();
    }
Exemple #17
0
        public async Task Root_method_call_fails()
        {
            // arrange
            var options = SqliteInMemory.CreateOptions <RootContext>();

            using (var context = new RootContext(options))
            {
                context.Database.EnsureCreated();
                var utData  = context.SetupSingleDtoAndEntities <SetItemDto>();
                var service = new CrudServicesAsync(context, utData.ConfigAndMapper);

                // act
                var dto = new SetItemDto
                {
                    Id   = 1,
                    Item = "A item!"
                };
                await service.UpdateAndSaveAsync(dto);
            }
        }
        public void TestSumSevenObj()
        {
            var d = new Dictionary <object, object>();

            d["hi"]    = 10;
            d[5]       = 20;
            d["there"] = 5;
            d["also"]  = 1;
            d["noway"] = 2;
            d["stuff"] = 4;
            d["ops"]   = 5;
            var fo = new MethodCallExpression(new PlotLingoLib.Expressions.Values.VariableValue("p"),
                                              new FunctionExpression("sum", new IExpression[0]));
            var c = new RootContext();

            c.SetVariableValue("p", d);
            var v = fo.Evaluate(c);

            Assert.AreEqual(47, v, "Value");
        }
Exemple #19
0
        public void DictForDefineLocally()
        {
            var loop1 = new Dictionary <object, object>()
            {
                { "a", 10 }
            };
            var loopdict = new ObjectValue(new Dictionary <object, object>[] { loop1 });

            var statement1    = new ExpressionStatement(new IntegerValue(5));
            var exprStatement = new ListOfStatementsExpression(new IStatement[] { statement1 });

            var forLoop = new FunctionExpression("for", loopdict, exprStatement);

            var c = new RootContext();

            c.SetVariableValue("a", 20);
            var r = forLoop.Evaluate(c);

            Assert.AreEqual(20, c.GetVariableValue("a"), "for loop with nothing in it");
        }
        public void TestPostMethodHookCallInExtensionMethod()
        {
            var ctx = new RootContext();
            var tc  = new testClass();

            ctx.SetVariableValue("p", tc);
            int count = 0;

            ctx.ExecutionContext.AddPostCallHook("CallOneStringArgExt", "test", (obj, result) =>
            {
                count++;
                Assert.AreEqual(tc, obj, "Object that is getting the callb ack");
                Assert.AreEqual(4, result, "Result of callback");
                return(result);
            });
            var s  = new StringValue("hi");
            var mc = new MethodCallExpression(new VariableValue("p"), new FunctionExpression("CallOneStringArgExt", new IExpression[] { s }));
            var r  = mc.Evaluate(ctx);

            Assert.AreEqual(1, count, "# of times the hook got called");
        }
Exemple #21
0
    // Use this for initialization
    protected override void Start()
    {
        base.Start();

        foreach (UnitRank rank in Enum.GetValues(typeof(UnitRank)))
        {
            if (!rank.Equals(UnitRank.Unknown))
            {
                GameObject   item       = Instantiate(MenuItem);
                UnitMenuItem itemScript = item.GetComponent <UnitMenuItem>();
                if (itemScript != null)
                {
                    RootContext.Inject(itemScript);
                    itemScript.SetRank(rank);
                }
                item.transform.SetParent(ContentPanel);
            }
        }

        EventManager.AddListener <GameModeChangedEvent>(HandleGameModeChanged);
    }
Exemple #22
0
    public async Task Start()
    {
        var rootContext = new RootContext(interfaceChains);

        await routingProtocol.Start(new RouterMetadata(name, interfaces.Keys.ToList())).ConfigureAwait(false);

        foreach (var iface in interfaces.Values)
        {
            await iface.Initialize(interfaceChains, rootContext).ConfigureAwait(false);
        }

        //Start modules in order
        foreach (var module in modules)
        {
            log.Debug($"Starting module {module}");
            await module.Start(rootContext, extensibilitySettings).ConfigureAwait(false);

            log.Debug($"Started module {module}");
        }

        await Task.WhenAll(interfaces.Values.Select(p => p.StartReceiving())).ConfigureAwait(false);
    }
Exemple #23
0
        static async Task Main(string[] args)
        {
            var log = LoggerFactory.Create(x => x.AddConsole().SetMinimumLevel(LogLevel.Debug));

            Log.SetLoggerFactory(log);

            Console.WriteLine("Starting Node1");
            var system        = new ActorSystem();
            var serialization = new Serialization();
            var context       = new RootContext(system);

            serialization.RegisterFileDescriptor(ProtosReflection.Descriptor);
            var cluster    = new Cluster(system, serialization);
            var parsedArgs = ParseArgs(args);
            // SINGLE REMOTE INSTANCE
            // Cluster.Start("MyCluster", parsedArgs.ServerName, 12001, new SingleRemoteInstanceProvider("localhost", 12000));

            // CONSUL

            await cluster.StartMemberAsync(
                "MyCluster", "node1", 12001, new ConsulProvider(new ConsulProviderOptions(), c => c.Address = new Uri("http://consul:8500/"))
                );

            var i = 10000;

            while (i-- > 0)
            {
                var res = await cluster.RequestAsync <HelloResponse>("TheName", "HelloKind", new HelloRequest(), CancellationToken.None);

                Console.WriteLine(res.Message);
                await Task.Delay(500);
            }

            await Task.Delay(-1);

            Console.WriteLine("Shutting Down...");

            await cluster.ShutdownAsync();
        }
Exemple #24
0
        public void DictForOneResultArrayList()
        {
            var loopList = new object[] { 1, 2 };

            var statement1    = new ExpressionStatement(new VariableValue("a"));
            var exprStatement = new ObjectValue(new ListOfStatementsExpression(new IStatement[] { statement1 }));

            var forLoop = new FunctionExpression("map", new VariableValue("a"), new ObjectValue(loopList), exprStatement);

            var c = new RootContext();
            var r = forLoop.Evaluate(c);

            Assert.IsNotNull(r, "for loop with nothing in it");
            var lst = r as IEnumerable <object>;

            Assert.IsNotNull(lst, "results isn't in good form!");
            var list = lst.ToArray();

            Assert.AreEqual(2, list.Count());
            Assert.AreEqual(1, list[0]);
            Assert.AreEqual(2, list[1]);
        }
        public RootContext root()
        {
            RootContext _localctx = new RootContext(_ctx, State);

            EnterRule(_localctx, 0, RULE_root);
            try {
                EnterOuterAlt(_localctx, 1);
                {
                    State = 14; expression(0);
                    State = 15; Match(Eof);
                }
            }
            catch (RecognitionException re) {
                _localctx.exception = re;
                _errHandler.ReportError(this, re);
                _errHandler.Recover(this, re);
            }
            finally {
                ExitRule();
            }
            return(_localctx);
        }
Exemple #26
0
    public async Task Initialize()
    {
        if (initialized)
        {
            throw new Exception("The router has already been initialized.");
        }

        rootContext = new RootContext(interfaceChains, name);
        await routingProtocol.Start(new RouterMetadata(name, interfaces.Select(i => i.Name).ToList())).ConfigureAwait(false);

        foreach (var iface in sendOnlyInterfaces)
        {
            await iface.Initialize(interfaceChains).ConfigureAwait(false);
        }

        foreach (var iface in interfaces)
        {
            await iface.Initialize(interfaceChains, rootContext).ConfigureAwait(false);
        }

        initialized = true;
    }
Exemple #27
0
        public async Task Start(RootContext rootContext, SettingsHolder extensibilitySettings)
        {
            if (settings.Uninstall)
            {
                foreach (var link in settings.Links)
                {
                    using (var conn = link.Value.ConnectionFactory())
                    {
                        await conn.OpenAsync().ConfigureAwait(false);

                        using (var trans = conn.BeginTransaction())
                        {
                            await outboxInstaller.Uninstall(link.Key, conn, trans).ConfigureAwait(false);

                            await inboxInstaller.Uninstall(link.Key, conn, trans).ConfigureAwait(false);

                            trans.Commit();
                        }
                    }
                }
            }

            foreach (var link in settings.Links)
            {
                using (var conn = link.Value.ConnectionFactory())
                {
                    await conn.OpenAsync().ConfigureAwait(false);

                    using (var trans = conn.BeginTransaction())
                    {
                        await outboxInstaller.Install(link.Key, conn, trans).ConfigureAwait(false);

                        await inboxInstaller.Install(link.Key, conn, trans).ConfigureAwait(false);

                        trans.Commit();
                    }
                }
            }
        }
Exemple #28
0
    static void Main(string[] args)
    {
        var context = new RootContext();

        Serialization.RegisterFileDescriptor(ProtosReflection.Descriptor);
        Remote.Start("127.0.0.1", 12001);

        var messageCount = 1000000;
        var wg           = new AutoResetEvent(false);
        var props        = Props.FromProducer(() => new LocalActor(0, messageCount, wg));

        var pid    = context.Spawn(props);
        var remote = new PID("127.0.0.1:12000", "remote");

        context.RequestAsync <Start>(remote, new StartRemote {
            Sender = pid
        }).Wait();

        var start = DateTime.Now;

        Console.WriteLine("Starting to send");
        var msg = new Ping();

        for (var i = 0; i < messageCount; i++)
        {
            context.Send(remote, msg);
        }
        wg.WaitOne();
        var elapsed = DateTime.Now - start;

        Console.WriteLine("Elapsed {0}", elapsed);

        var t = messageCount * 2.0 / elapsed.TotalMilliseconds * 1000;

        Console.WriteLine("Throughput {0} msg / sec", t);

        Console.ReadLine();
    }
        public async Task Start(RootContext rootContext, SettingsHolder extensibilitySettings)
        {
            tokenSource = new CancellationTokenSource();

            foreach (var persister in persisters)
            {
                async Task Dispatch(OutgoingMessage operation)
                {
                    var destinationEndpoint = persister.Key;
                    var iface = destinationToInterfaceMap[destinationEndpoint];

                    var chains          = rootContext.Interfaces.GetChainsFor(iface);
                    var chain           = chains.Get <AnycastContext>();
                    var dispatchContext = new OutboxDispatchContext(rootContext, iface);
                    var forwardContext  = new AnycastContext(destinationEndpoint, operation, DistributionStrategyScope.Send, dispatchContext);

                    dispatchContext.Set(new TransportTransaction());
                    await chain.Invoke(forwardContext).ConfigureAwait(false);
                }

                await persister.Value.Start(tokenSource.Token, Dispatch);
            }
        }
Exemple #30
0
        /// <summary>
        /// Saves the surface graph to bytes.
        /// </summary>
        /// <remarks>
        /// The method calls the <see cref="ISurfaceContext.SurfaceData"/> setter to assign the result bytes. Sets null value if failed.
        /// </remarks>
        public void Save()
        {
            var wasEdited = IsEdited;

            // Update the current context meta
            _context.CachedSurfaceMeta.ViewCenterPosition = ViewCenterPosition;
            _context.CachedSurfaceMeta.Scale = ViewScale;

            // Save context (and every modified child context)
            bool failed = RootContext.Save();

            if (failed)
            {
                // Error
                return;
            }

            // Clear flag
            if (wasEdited)
            {
                Owner.OnSurfaceEditedChanged();
            }
        }
        public void TestGeneration()
        {
            var k1 = new StringValue("1");
            var k2 = new StringValue("2");

            var v1 = new IntegerValue(1);
            var v2 = new IntegerValue(2);

            var allvals = new Tuple <IExpression, IExpression>[] {
                new Tuple <IExpression, IExpression>(k1, v1),
                new Tuple <IExpression, IExpression>(k2, v2),
            };

            var dv = new DictionaryValue(allvals);
            var c  = new RootContext();
            var o  = dv.Evaluate(c);

            Assert.IsInstanceOfType(o, typeof(IDictionary <object, object>), "Dict type");
            var od = o as IDictionary <object, object>;

            Assert.AreEqual(1, od["1"], "value of 1");
            Assert.AreEqual(2, od["2"], "value of 2");
        }
Exemple #32
0
        public void DictForOneResult()
        {
            var loop1 = new Dictionary <object, object>()
            {
                { "a", 10 }
            };
            var loopdict = new ObjectValue(new Dictionary <object, object>[] { loop1 });

            var statement1    = new ExpressionStatement(new IntegerValue(5));
            var exprStatement = new ObjectValue(new ListOfStatementsExpression(new IStatement[] { statement1 }));

            var forLoop = new FunctionExpression("map", loopdict, exprStatement);

            var c = new RootContext();
            var r = forLoop.Evaluate(c);

            Assert.IsNotNull(r, "for loop with nothing in it");
            var lst = r as IEnumerable <object>;

            Assert.IsNotNull(lst, "results isn't in good form!");
            Assert.AreEqual(1, lst.Count());
            Assert.AreEqual(5, lst.First());
        }
Exemple #33
0
    public static async Task RunTest(Func <IMailbox> mailbox)
    {
        var       context = new RootContext();
        const int n       = 10 * 1000;
        var       props   = Props.FromFunc(c =>
        {
            switch (c.Message)
            {
            case string s:
                c.Respond("done");
                break;
            }
            return(Actor.Done);
        })
                            .WithMailbox(mailbox);
        var pid = context.Spawn(props);

        for (var i = 1; i <= n; i++)
        {
            context.Send(pid, i);
        }
        await context.RequestAsync <string>(pid, "stop");
    }
Exemple #34
0
    public RootContext () {
        GuiContext = new GuiContext();
	    instance = this;
	    Turn = 1;
	}
Exemple #35
0
 void Awake()
 {
     Context = new RootContext();
     View.SetContext(Context);
 }
		public override object Serialize (IDesignerSerializationManager manager, object value)
		{
			if (manager == null)
				throw new ArgumentNullException ("manager");
			if (value == null)
				throw new ArgumentNullException ("value");

			if (_codeMap == null)
				_codeMap = new CodeMap (value.GetType (), manager.GetName (value));
			_codeMap.Clear ();

			RootContext rootContext = new RootContext (new CodeThisReferenceExpression (), value);
			manager.Context.Push (rootContext);

			this.SerializeComponents (manager, ((IComponent) value).Site.Container.Components, (IComponent) value);

			// Serialize root component
			// 
			CodeStatementCollection statements = new CodeStatementCollection ();
			statements.Add (new CodeCommentStatement (String.Empty));
			statements.Add (new CodeCommentStatement (manager.GetName (value)));
			statements.Add (new CodeCommentStatement (String.Empty));
			// Note that during the serialization process below ComponentCodeDomSerializer
			// will be invoked to serialize the rootcomponent during expression serialization.
			// It will check for RootContext and return that.
			base.SerializeProperties (manager, statements, value, new Attribute[0]);
			base.SerializeEvents (manager, statements, value, new Attribute[0]);
			_codeMap.AddInitStatements (statements);

			manager.Context.Pop ();
			return _codeMap.GenerateClass ();
		}
		public override object Serialize (IDesignerSerializationManager manager, object value)
		{
			if (manager == null)
				throw new ArgumentNullException ("manager");
			if (value == null)
				throw new ArgumentNullException ("value");

			// Add the provider to supply the ComponentCodeSerializer, Primitives..., etc
			manager.AddSerializationProvider (_provider);
			RootContext rootContext = new RootContext (new CodeThisReferenceExpression (), value);
			manager.Context.Push (rootContext);

			// Initialize code map
			if (_codeMap != null)
				_codeMap = new CodeMap (value.GetType (), manager.GetName (value));
			_codeMap.Clear ();
			CodeStatementCollection statements = null;
			CodeDomSerializer serializer = null;

			foreach (object component in ((IComponent) value).Site.Container.Components) {
				if (!Object.ReferenceEquals (component, value)) {
					serializer = base.GetSerializer (manager, component) as CodeDomSerializer; // ComponentCodeDomSerializer
					if (serializer != null) {
						// add an expressioncontext to inform the component that we want it fully serialized (it is in context)
						ExpressionContext context = new ExpressionContext (null, null, null, component);
						manager.Context.Push (context);

						_codeMap.AddField (new CodeMemberField (value.GetType (), manager.GetName (value)));
						statements = (CodeStatementCollection) serializer.Serialize (manager, component);

						manager.Context.Pop ();
						// XXX: what if there are more than one objects constructed by the serializer?
						// this will only add the first one on the statements list.
						CodeStatement ctorStatement = ExtractCtorStatement (statements);
						if (ctorStatement != null)
							_codeMap.AddPreInitStatement (ctorStatement);
						_codeMap.AddInitStatements (statements);
					}
				}
			}

			// Serializer root component
			// 
			statements = new CodeStatementCollection ();
			base.SerializeProperties (manager, statements, value, new Attribute[0]);
			base.SerializeEvents (manager, statements, value, new Attribute[0]);
			_codeMap.AddInitStatements (statements);

			manager.Context.Pop ();
			return _codeMap.GenerateClass ();
		}
Exemple #38
0
 // Use this for initialization
 void Awake()
 {
     context = new RootContext(this);
 }