Esempio n. 1
0
 /// <inheritdoc/>
 public IStreamProcessor Create(
     ConsentId consent,
     SubscriptionId subscription,
     ExecutionContext executionContext,
     EventsFromEventHorizonFetcher eventsFromEventHorizonFetcher)
 => new StreamProcessor(
     subscription,
     executionContext,
     new EventProcessor(
         consent,
         subscription,
         _externalEventsCommitter,
         _metrics,
         _loggerFactory.CreateLogger <EventProcessor>()),
     eventsFromEventHorizonFetcher,
     _streamProcessorStates,
     _eventsFetcherPolicy,
     _metrics,
     _loggerFactory);
Esempio n. 2
0
 /// <summary>
 /// Initializes a new instance of the <see cref="StreamProcessor"/> class.
 /// </summary>
 /// <param name="subscriptionId">The identifier of the subscription the stream processor will receive events for.</param>
 /// <param name="executionContext">The <see cref="ExecutionContext"/>.</param>
 /// <param name="eventProcessor">The event processor that writes the received events to a scoped event log.</param>
 /// <param name="eventsFetcher">The event fetcher that receives fetches events over an event horizon connection.</param>
 /// <param name="streamProcessorStates">The repository to use for getting the subscription state.</param>
 /// <param name="eventsFetcherPolicy">The policy around fetching events.</param>
 /// <param name="metrics">The system for collecting metrics.</param>
 /// <param name="loggerFactory">The factory for creating loggers.</param>
 public StreamProcessor(
     SubscriptionId subscriptionId,
     ExecutionContext executionContext,
     IEventProcessor eventProcessor,
     EventsFromEventHorizonFetcher eventsFetcher,
     IResilientStreamProcessorStateRepository streamProcessorStates,
     IEventFetcherPolicies eventsFetcherPolicy,
     IMetricsCollector metrics,
     ILoggerFactory loggerFactory)
 {
     _identifier            = subscriptionId;
     _executionContext      = executionContext;
     _eventProcessor        = eventProcessor;
     _streamProcessorStates = streamProcessorStates;
     _eventsFetcher         = eventsFetcher;
     _eventsFetcherPolicy   = eventsFetcherPolicy;
     _metrics       = metrics;
     _loggerFactory = loggerFactory;
     _logger        = loggerFactory.CreateLogger <StreamProcessor>();
 }
Esempio n. 3
0
        /// <summary>
        /// Initializes a new instance of the <see cref="Subscription"/> class.
        /// </summary>
        /// <param name="consentId">The <see cref="ConsentId" />.</param>
        /// <param name="subscriptionId">The <see cref="StreamProcessorId" />.</param>
        /// <param name="eventProcessor">The <see cref="IEventProcessor" />.</param>
        /// <param name="eventsFetcher">The <see cref="EventsFromEventHorizonFetcher" />.</param>
        /// <param name="streamProcessorStates">The <see cref="IResilientStreamProcessorStateRepository" />.</param>
        /// <param name="unregister">An <see cref="Action" /> that unregisters the <see cref="ScopedStreamProcessor" />.</param>
        /// <param name="eventsFetcherPolicy">The <see cref="IAsyncPolicyFor{T}" /> <see cref="ICanFetchEventsFromStream" />.</param>
        /// <param name="loggerManager">The <see cref="ILoggerManager" />.</param>
        /// <param name="cancellationToken">The <see cref="CancellationToken" />.</param>
        public Subscription(
            ConsentId consentId,
            SubscriptionId subscriptionId,
            EventProcessor eventProcessor,
            EventsFromEventHorizonFetcher eventsFetcher,
            IResilientStreamProcessorStateRepository streamProcessorStates,
            Action unregister,
            IAsyncPolicyFor <ICanFetchEventsFromStream> eventsFetcherPolicy,
            ILoggerManager loggerManager,
            CancellationToken cancellationToken)
        {
            _identifier            = subscriptionId;
            _eventProcessor        = eventProcessor;
            _unregister            = unregister;
            _streamProcessorStates = streamProcessorStates;
            _eventsFetcher         = eventsFetcher;
            _eventsFetcherPolicy   = eventsFetcherPolicy;
            _loggerManager         = loggerManager;
            _logger                      = loggerManager.CreateLogger <StreamProcessor>();
            _cancellationToken           = cancellationToken;
            _unregisterTokenRegistration = _cancellationToken.Register(_unregister);

            ConsentId = consentId;
        }