/// <summary> /// Initialize the factory /// </summary> /// <param name="providerConfig"></param> /// <param name="providerName"></param> /// <param name="log"></param> /// <param name="svcProvider"></param> public void Init(IProviderConfiguration providerConfig, string providerName, Logger log, IServiceProvider svcProvider) { logger = log; serviceProvider = svcProvider; receivers = new ConcurrentDictionary <QueueId, Receiver>(); adapterConfig = new GeneratorAdapterConfig(providerName); adapterConfig.PopulateFromProviderConfig(providerConfig); this.serializationManager = svcProvider.GetRequiredService <SerializationManager>(); if (CacheMonitorFactory == null) { this.CacheMonitorFactory = (dimensions, logger) => new DefaultCacheMonitor(dimensions, logger); } if (this.BlockPoolMonitorFactory == null) { this.BlockPoolMonitorFactory = (dimensions, logger) => new DefaultBlockPoolMonitor(dimensions, logger); } if (this.ReceiverMonitorFactory == null) { this.ReceiverMonitorFactory = (dimensions, logger) => new DefaultQueueAdapterReceiverMonitor(dimensions, logger); } if (adapterConfig.GeneratorConfigType != null) { generatorConfig = (IStreamGeneratorConfig)(serviceProvider?.GetService(adapterConfig.GeneratorConfigType) ?? Activator.CreateInstance(adapterConfig.GeneratorConfigType)); if (generatorConfig == null) { throw new ArgumentOutOfRangeException(nameof(providerConfig), "GeneratorConfigType not valid."); } generatorConfig.PopulateFromProviderConfig(providerConfig); } this.sharedDimensions = new MonitorAggregationDimensions(serviceProvider.GetService <GlobalConfiguration>(), serviceProvider.GetService <NodeConfiguration>()); }
public void Configure(IServiceProvider serviceProvider, IStreamGeneratorConfig generatorConfig) { var cfg = generatorConfig as SimpleGeneratorConfig; if (cfg == null) { throw new ArgumentOutOfRangeException("generatorConfig"); } config = cfg; sequenceId = 0; streamGuid = Guid.NewGuid(); }
public void Configure(IServiceProvider serviceProvider, IStreamGeneratorConfig generatorConfig) { var cfg = generatorConfig as SimpleGeneratorOptions; if (cfg == null) { throw new ArgumentOutOfRangeException(nameof(generatorConfig)); } options = cfg; sequenceId = 0; streamId = StreamId.Create(options.StreamNamespace, Guid.NewGuid()); }
public void Configure(IServiceProvider serviceProvider, IStreamGeneratorConfig generatorConfig) { var cfg = generatorConfig as SimpleGeneratorConfig; if (cfg == null) { throw new ArgumentOutOfRangeException("generatorConfig"); } config = cfg; sequenceId = 0; streamGuid = Guid.NewGuid(); }
public void Init(IProviderConfiguration providerConfig, string providerName, Logger log) { this.logger = log; adapterConfig = new GeneratorAdapterConfig(providerName); adapterConfig.PopulateFromProviderConfig(providerConfig); generatorConfig = serviceProvider.GetService(adapterConfig.GeneratorConfigType) as IStreamGeneratorConfig; if (generatorConfig == null) { throw new ArgumentOutOfRangeException("providerConfig", "GeneratorConfigType not valid."); } generatorConfig.PopulateFromProviderConfig(providerConfig); }
public void Init(IProviderConfiguration providerConfig, string providerName, Logger log, IServiceProvider svcProvider) { logger = log; serviceProvider = svcProvider; receivers = new ConcurrentDictionary <QueueId, Receiver>(); adapterConfig = new GeneratorAdapterConfig(providerName); adapterConfig.PopulateFromProviderConfig(providerConfig); if (adapterConfig.GeneratorConfigType != null) { generatorConfig = serviceProvider.GetService(adapterConfig.GeneratorConfigType) as IStreamGeneratorConfig; if (generatorConfig == null) { throw new ArgumentOutOfRangeException("providerConfig", "GeneratorConfigType not valid."); } generatorConfig.PopulateFromProviderConfig(providerConfig); } }
public void Init(IProviderConfiguration providerConfig, string providerName, Logger log, IServiceProvider svcProvider) { logger = log; serviceProvider = svcProvider; receivers = new ConcurrentDictionary <QueueId, Receiver>(); adapterConfig = new GeneratorAdapterConfig(providerName); adapterConfig.PopulateFromProviderConfig(providerConfig); if (adapterConfig.GeneratorConfigType != null) { generatorConfig = serviceProvider.GetService(adapterConfig.GeneratorConfigType) as IStreamGeneratorConfig; if (generatorConfig == null) { throw new ArgumentOutOfRangeException("providerConfig", "GeneratorConfigType not valid."); } generatorConfig.PopulateFromProviderConfig(providerConfig); } // 10 meg buffer pool. 10 1 meg blocks bufferPool = new FixedSizeObjectPool <FixedSizeBuffer>(10, pool => new FixedSizeBuffer(1 << 20, pool)); }
/// <summary> /// A function to execute a control command. /// </summary> /// <param name="command">A serial number of the command.</param> /// <param name="arg">An opaque command argument</param> public Task <object> ExecuteCommand(int command, object arg) { if (arg == null) { throw new ArgumentNullException("arg"); } generatorConfig = arg as IStreamGeneratorConfig; if (generatorConfig == null) { throw new ArgumentOutOfRangeException("arg", "Arg must by of type IStreamGeneratorConfig"); } // update generator on receivers foreach (var receiver in receivers) { SetGeneratorOnReceiver(receiver.Value); } return(Task.FromResult <object>(true)); }
/// <summary> /// Initialize the factory /// </summary> /// <param name="providerConfig"></param> /// <param name="providerName"></param> /// <param name="log"></param> /// <param name="svcProvider"></param> public void Init(IProviderConfiguration providerConfig, string providerName, Logger log, IServiceProvider svcProvider) { logger = log; serviceProvider = svcProvider; receivers = new ConcurrentDictionary <QueueId, Receiver>(); adapterConfig = new GeneratorAdapterConfig(providerName); adapterConfig.PopulateFromProviderConfig(providerConfig); this.serializationManager = svcProvider.GetRequiredService <SerializationManager>(); if (adapterConfig.GeneratorConfigType != null) { generatorConfig = (IStreamGeneratorConfig)(serviceProvider?.GetService(adapterConfig.GeneratorConfigType) ?? Activator.CreateInstance(adapterConfig.GeneratorConfigType)); if (generatorConfig == null) { throw new ArgumentOutOfRangeException(nameof(providerConfig), "GeneratorConfigType not valid."); } generatorConfig.PopulateFromProviderConfig(providerConfig); } // 10 meg buffer pool. 10 1 meg blocks bufferPool = new FixedSizeObjectPool <FixedSizeBuffer>(10, () => new FixedSizeBuffer(1 << 20)); }
/// <summary> /// Initialize the factory /// </summary> public void Init() { this.receivers = new ConcurrentDictionary <QueueId, Receiver>(); if (CacheMonitorFactory == null) { this.CacheMonitorFactory = (dimensions, telemetryProducer) => new DefaultCacheMonitor(dimensions, telemetryProducer); } if (this.BlockPoolMonitorFactory == null) { this.BlockPoolMonitorFactory = (dimensions, telemetryProducer) => new DefaultBlockPoolMonitor(dimensions, telemetryProducer); } if (this.ReceiverMonitorFactory == null) { this.ReceiverMonitorFactory = (dimensions, telemetryProducer) => new DefaultQueueAdapterReceiverMonitor(dimensions, telemetryProducer); } generatorConfig = this.serviceProvider.GetServiceByName <IStreamGeneratorConfig>(this.Name); if (generatorConfig == null) { this.logger.LogInformation("No generator configuration found for stream provider {StreamProvider}. Inactive until provided with configuration by command.", this.Name); } }