예제 #1
0
 protected SubscriptionPoller(ISubscriptionEventSource[] sources)
 {
     RetriesPolicy          = PollerRetriesPolicy.Defaut();
     Sources                = sources;
     _handlerRegistrar      = CreateHandlerRegistrar();
     _contractSubscriptions = new Dictionary <ISubscriptionEventSource, int>(Sources.Length);
 }
예제 #2
0
        internal void Initialize(IContractsRegistry contractsRegistry)
        {
            if (RetriesPolicy == null)
            {
                RetriesPolicy = PollerRetriesPolicy.NoRetries();
            }
            _pollerContractName = contractsRegistry.GetContractName(GetType());
            var eventTypes = GetConcreteSubscriptionEventTypes();

            if (eventTypes == null)
            {
                return;
            }

            var contractNames = eventTypes.Select(contractsRegistry.GetContractName).ToArray();

            foreach (var source in Sources)
            {
                var id = source.CreateSubscriptionForContracts(_pollerContractName, contractNames);
                _contractSubscriptions.Add(source, id);
            }
        }