public UtralisksSystemController(Bootstrap bootstrap, IHostedMachine hostedMachine)
            : base(bootstrap)
        {
            messageEntrance = new MessageEntrance(bootstrap.GetMessageQueueFromVariableSet("Entrance"));
            MetricCollections.Default.AddMetricCollector("idle", new IncreasedMetricCollector("UtraliskIdle"));
            MetricCollections.Default.AddMetricCollector("busy", new IncreasedMetricCollector("UtraliskBusy"));
            WorkingProcessor = new TransformIntegration(
                bootstrap.GetCachedFromVariableSet("CoreCache"),
                bootstrap.GetStorageFromVariableSet("CoreStorage")
                );
            IMessageTermination messageTermination = new MessageTermination(bootstrap, this);

            messagePipline     = new MessagePipline(messageEntrance, messageTermination);
            messageOut         = bootstrap.GetMessageQueueFromVariableSet("Termination");
            this.hostedMachine = hostedMachine;
        }
        public HydraliskSystemController(Bootstrap bootstrap, IHostedMachine hostedMachine)
            : base(bootstrap)
        {
            IMessageEntrance messageEntrance = new MessageEntrance(bootstrap.GetMessageQueueFromVariableSet("Entrance"));

            WorkingProcessor = new SourceIntergation(bootstrap.Provisioning.Caches["default-cache"],
                                                     new ExtractorManager(bootstrap.InjectionProvider));
            MetricCollections.Default.AddMetricCollector("idle", new IncreasedMetricCollector("HydraliskIdle"));
            MetricCollections.Default.AddMetricCollector("busy", new IncreasedMetricCollector("HydraliskBusy"));
            IMessageTermination messageTermination = new MessageTermination(bootstrap, this);

            messagePipline     = new MessagePipline(messageEntrance, messageTermination);
            messageOut         = bootstrap.GetMessageQueueFromVariableSet("Termination");
            this.hostedMachine = hostedMachine;
            //TODO : Cache should comes from the variable.
        }
        public KerriganSystemController(Bootstrap bootstrap, IHostedMachine hostedMachine)
            : base(bootstrap)
        {
            var entrance = new MessageEntrance(bootstrap.GetMessageQueueFromVariableSet("Entrance"));

            MetricCollections.Default.AddMetricCollector("idle", new IncreasedMetricCollector("KerriganIdle"));
            MetricCollections.Default.AddMetricCollector("busy", new IncreasedMetricCollector("KerriganBusy"));
            this.loadProviderManager = new LoadProviderManager();
            this.WorkingProcessor    = new LoadIntegration(
                bootstrap.GetCachedFromVariableSet("HeartbeatCache"),
                bootstrap.GetStorageFromVariableSet("CoreStorage"),
                this.loadProviderManager
                );
            IMessageTermination messageTermination = new MessageTermination(bootstrap, this);

            messagePipline     = new MessagePipline(entrance, messageTermination);
            messageOut         = bootstrap.GetMessageQueueFromVariableSet("Termination");
            this.hostedMachine = hostedMachine;
        }