public IProcessingGroup AttachProcessingGroup(IProcessingFactory <IEnergyObservation> processingFactory) { var processingGroup = new RegisteredSourceProcessingGroup(this, processingFactory); _processingGroups.Add(processingGroup); return(processingGroup); }
public IProcessingGroup AttachProcessingGroup(IProcessingFactory factory) { var processingGroup = new RegisteredSourceProcessingGroup(this, factory); _processingGroups.Add(processingGroup); return(processingGroup); }
public RegisteredSourceProcessingGroup(RegisteredEnergyObservationSourceWrapper sourceRegistration, IProcessingFactory factory) { _sourceRegistration = sourceRegistration; Storage = factory.CreateStorage(); Processor = factory.CreateProcessor(); Analizer = factory.CreateAnalizer(); _processorSubscription = _sourceRegistration.Subscribe(Processor); }
public IProcessingGroup <T> AttachProcessingGroup(IProcessingFactory <T> factory) { if (factory == null) { throw new ArgumentNullException(nameof(factory)); } var processingGroup = new RegisteredSourceProcessingGroup <T>(this, factory); _processingGroups.Add(processingGroup); return(processingGroup); }
private static void ProcessFactoriesInApp() { Console.WriteLine("Choose source factory to work with."); int i = 0; foreach (var appSourceFactory in App.SourceFactories) { ++i; Console.WriteLine($"{i}: {appSourceFactory.GetType()}"); } var userChoiceIsValid = false; ISourceFactory <FlashObservation> sourceFactory = null; if (App.SourceFactories.Count == 0) { sourceFactory = new RandomEnergySourceFactory(new Logger()); Console.WriteLine($"The source factory is not defined in plugin, so it will be {nameof(RandomEnergySource)}"); } else { while (!userChoiceIsValid) { if (TryReadUserInput(0, App.SourceFactories.Count, out int userChoice)) { userChoiceIsValid = true; sourceFactory = App.SourceFactories.ElementAt(userChoice - 1); } } } Console.WriteLine("Choose processing factory to work with."); i = 0; foreach (var appProcessingFactory in App.ProcessingFactories) { ++i; Console.WriteLine($"{i}: {appProcessingFactory.GetType()}"); } IProcessingFactory <FlashObservation> processingFactory = null; userChoiceIsValid = false; while (!userChoiceIsValid !) { if (TryReadUserInput(0, App.ProcessingFactories.Count, out int userChoice)) { userChoiceIsValid = true; processingFactory = App.ProcessingFactories.ElementAt(userChoice - 1); } } Console.WriteLine($"Processing source factory {sourceFactory.GetType()}..."); ISourceRegistration <FlashObservation> sourceRegistration = App.CreateAndRegisterSource(sourceFactory); IProcessingGroup <FlashObservation> processingGroup = sourceRegistration.AttachProcessingGroup(processingFactory); SourceRegistrations.Add(sourceRegistration); Console.WriteLine("Click Ctrl+C to stop generating values"); sourceRegistration.Start().Wait(); ProcessAnalyzer(processingGroup.Analizer); }
public RegisteredSourceProcessingGroup(RegisteredEnergyObservationSourceWrapper <T> sourceRegistration, IProcessingFactory <T> factory) { _sourceRegistration = sourceRegistration ?? throw new ArgumentNullException(nameof(sourceRegistration)); if (factory == null) { throw new ArgumentNullException(nameof(factory)); } Processor = factory.CreateProcessor(); Storage = factory.CreateStorage(); Analizer = factory.CreateAnalizer(); _processorSubscription = _sourceRegistration.Subscribe(Processor); }