예제 #1
0
        public SimulationManager(
            ISimulationContext simulationContext,
            IDevicePartitions devicePartitions,
            IClusterNodes clusterNodes,
            IDeviceModels deviceModels,
            IFactory factory,
            IClusteringConfig clusteringConfig,
            ILogger logger,
            IInstance instance,
            ISimulationStatistics simulationStatistics,
            ISimulations simulations)
        {
            this.simulationContext    = simulationContext;
            this.devicePartitions     = devicePartitions;
            this.clusterNodes         = clusterNodes;
            this.deviceModels         = deviceModels;
            this.simulationStatistics = simulationStatistics;
            this.factory          = factory;
            this.log              = logger;
            this.instance         = instance;
            this.maxDevicePerNode = clusteringConfig.MaxDevicesPerNode;
            this.simulations      = simulations;

            this.assignedPartitions = new ConcurrentDictionary <string, DevicesPartition>();
            this.nodeCount          = 1;
            this.deviceCount        = 0;
        }
예제 #2
0
 public SimulationStatistics(IServicesConfig config,
                             IClusterNodes clusterNodes,
                             IFactory factory,
                             ILogger logger)
 {
     this.clusterNodes = clusterNodes;
     this.log          = logger;
     this.simulationStatisticsStorage = factory.Resolve <IStorageRecords>().Init(config.StatisticsStorage);
 }
 public SimulationStatistics(IServicesConfig config,
                             IClusterNodes clusterNodes,
                             IEngines engines,
                             ILogger logger)
 {
     this.clusterNodes = clusterNodes;
     this.log          = logger;
     this.simulationStatisticsStorage = engines.Build(config.StatisticsStorage);
 }
예제 #4
0
 public DevicePartitions(
     IServicesConfig config,
     IClusteringConfig clusteringConfig,
     ISimulations simulations,
     IClusterNodes clusterNodes,
     IEngines engines,
     ILogger logger)
 {
     this.simulations               = simulations;
     this.log                       = logger;
     this.partitionsStorage         = engines.Build(config.PartitionsStorage);
     this.clusterNodes              = clusterNodes;
     this.partitionLockDurationSecs = clusteringConfig.PartitionLockDurationMsecs / 1000;
     this.maxPartitionSize          = clusteringConfig.MaxPartitionSize;
 }
 public DevicePartitions(
     IServicesConfig config,
     IClusteringConfig clusteringConfig,
     ISimulations simulations,
     IClusterNodes clusterNodes,
     IFactory factory,
     ILogger logger)
 {
     this.simulations               = simulations;
     this.log                       = logger;
     this.partitionsStorage         = factory.Resolve <IStorageRecords>().Init(config.PartitionsStorage);
     this.clusterNodes              = clusterNodes;
     this.partitionLockDurationSecs = clusteringConfig.PartitionLockDurationMsecs / 1000;
     this.maxPartitionSize          = clusteringConfig.MaxPartitionSize;
 }
예제 #6
0
 public Agent(
     IClusterNodes clusterNodes,
     IDevicePartitions partitions,
     ISimulations simulations,
     IThreadWrapper thread,
     IClusteringConfig clusteringConfig,
     ILogger logger)
 {
     this.clusterNodes       = clusterNodes;
     this.partitions         = partitions;
     this.simulations        = simulations;
     this.thread             = thread;
     this.log                = logger;
     this.checkIntervalMsecs = clusteringConfig.CheckIntervalMsecs;
     this.running            = false;
 }
예제 #7
0
 public Agent(
     IClusterNodes clusterNodes,
     IDevicePartitions partitions,
     ISimulations simulations,
     IThreadWrapper thread,
     IClusteringConfig clusteringConfig,
     IFactory factory,
     ILogger logger,
     IAzureManagementAdapterClient azureManagementAdapter)
 {
     this.clusterNodes           = clusterNodes;
     this.partitions             = partitions;
     this.simulations            = simulations;
     this.thread                 = thread;
     this.factory                = factory;
     this.log                    = logger;
     this.azureManagementAdapter = azureManagementAdapter;
     this.clusteringConfig       = clusteringConfig;
     this.checkIntervalMsecs     = clusteringConfig.CheckIntervalMsecs;
     this.running                = false;
     this.currentNodeCount       = DEFAULT_NODE_COUNT;
 }