public InstancesBuilder(IStateManagementEventsAggregator <TData> eventsAggregator)
        {
            EventsAggregator = eventsAggregator;
            EventsAggregator.InstanceChangedEvent += WhenInstanceChanged;

            BuildersByDescriptor = new Dictionary <ITerminalDescriptor, ICollection <IDataBuilder <TData> > >();
        }
        public CollectionsManager(IDataPool <TData> dataPool, IStateManagementEventsAggregator <TData> eventsAggregator)
        {
            DataPool         = dataPool;
            EventsAggregator = eventsAggregator;

            CollectionsByDescriptor = new ConcurrentDictionary <INonTerminalDescriptor, ICollection <ICollection <TData> > >();
            DescriptorByCollection  = new ConcurrentDictionary <ICollection <TData>, INonTerminalDescriptor>();
            BuilderByCollection     = new ConcurrentDictionary <ICollection <TData>, IDataBuilder <TData> >();

            EventsAggregator.CompositionChangedEvent += WhenCompositionChanged;
        }
        public DataRepository(IDataRetriever <TData> dataRetriever, IDataPool <TData> dataPool,
                              ICollectionsManager <TData> collectionsManager, IInstancesBuilder <TData> instancesBuilder,
                              IStateManagementEventsAggregator <TData> eventsAggregator)
        {
            _semaphore = new DescriptorSemaphore();

            DataRetriever      = dataRetriever;
            DataPool           = dataPool;
            CollectionsManager = collectionsManager;
            InstancesBuilder   = instancesBuilder;
            EventsAggregator   = eventsAggregator;

            EventsAggregator.TerminalDataAvailableEvent    += OnTerminalDataAvailableEvent;
            EventsAggregator.NonTerminalDataAvailableEvent += OnNonTerminalDataAvailableEvent;
        }
Пример #4
0
 public StateManagementSystem(IDataQualitySupervisor <TData> qualitySupervisor, IDataRepository <TData> repository, IStateManagementEventsAggregator <TData> eventsAggregator)
 {
     QualitySupervisor = qualitySupervisor;
     Repository        = repository;
     EventsAggregator  = eventsAggregator;
 }
Пример #5
0
 public DataRefresher(IDataRetriever <TData> dataRetriever, IDataPool <TData> dataPool, IStateManagementEventsAggregator <TData> eventsAggregator)
 {
     EventsAggregator = eventsAggregator;
     DataRetriever    = dataRetriever;
     DataPool         = dataPool;
 }
Пример #6
0
 public DataRetriever(ITerminalDescriptorsFactory <TData> terminalDescriptorsFactory,
                      IStateManagementEventsAggregator <TData> eventsAggregator)
 {
     TerminalDescriptorsFactory = terminalDescriptorsFactory;
     EventsAggregator           = eventsAggregator;
 }