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;
        }
 public DescriptorSemaphoreRelease(DescriptorSemaphore semaphore, IDescriptor descriptor, Guid token)
 {
     _semaphore  = semaphore;
     _descriptor = descriptor;
     _token      = token;
 }