public StreamConsumerSettings(
     [NotNull] string streamName,
     [NotNull] IHerculesStreamClient <T> streamClient,
     [NotNull] IStreamEventsHandler <T> eventsHandler,
     [NotNull] IStreamCoordinatesStorage coordinatesStorage,
     [NotNull] Func <StreamShardingSettings> shardingSettingsProvider)
 {
     StreamName               = streamName ?? throw new ArgumentNullException(nameof(streamName));
     StreamClient             = streamClient ?? throw new ArgumentNullException(nameof(streamClient));
     EventsHandler            = eventsHandler ?? throw new ArgumentNullException(nameof(eventsHandler));
     CoordinatesStorage       = coordinatesStorage ?? throw new ArgumentNullException(nameof(coordinatesStorage));
     ShardingSettingsProvider = shardingSettingsProvider ?? throw new ArgumentNullException(nameof(shardingSettingsProvider));
 }
 public StreamConsumerSettings(
     [NotNull] string streamName,
     [NotNull] IHerculesStreamClient streamClient,
     [NotNull] IStreamEventsHandler eventsHandler,
     [NotNull] IStreamCoordinatesStorage coordinatesStorage,
     [NotNull] Func <StreamShardingSettings> shardingSettingsProvider)
     : base(
         streamName,
         streamClient.ToGenericClient(),
         eventsHandler.ToGenericHandler(),
         coordinatesStorage,
         shardingSettingsProvider)
 {
 }
 public BatchesStreamConsumerSettings(
     [NotNull] string streamName,
     [NotNull] Func <string> apiKeyProvider,
     [NotNull] IClusterProvider streamApiCluster,
     [NotNull] Func <IBinaryBufferReader, IHerculesEventBuilder <T> > eventBuilderProvider,
     [NotNull] IStreamCoordinatesStorage coordinatesStorage,
     [NotNull] Func <StreamShardingSettings> shardingSettingsProvider)
 {
     StreamName               = streamName ?? throw new ArgumentNullException(nameof(streamName));
     ApiKeyProvider           = apiKeyProvider ?? throw new ArgumentNullException(nameof(apiKeyProvider));
     StreamApiCluster         = streamApiCluster ?? throw new ArgumentNullException(nameof(streamApiCluster));
     EventBuilderProvider     = eventBuilderProvider ?? throw new ArgumentNullException(nameof(eventBuilderProvider));
     CoordinatesStorage       = coordinatesStorage ?? throw new ArgumentNullException(nameof(coordinatesStorage));
     ShardingSettingsProvider = shardingSettingsProvider ?? throw new ArgumentNullException(nameof(shardingSettingsProvider));
 }
 public StreamTransformerSettings(
     [NotNull] string sourceStreamName,
     [NotNull] string targetStreamName,
     [NotNull] IHerculesStreamClient streamClient,
     [NotNull] IHerculesGateClient gateClient,
     [NotNull] IStreamCoordinatesStorage coordinatesStorage,
     [NotNull] Func <StreamShardingSettings> shardingSettingsProvider)
 {
     SourceStreamName         = sourceStreamName ?? throw new ArgumentNullException(nameof(sourceStreamName));
     TargetStreamName         = targetStreamName ?? throw new ArgumentNullException(nameof(targetStreamName));
     StreamClient             = streamClient ?? throw new ArgumentNullException(nameof(streamClient));
     GateClient               = gateClient ?? throw new ArgumentNullException(nameof(gateClient));
     CoordinatesStorage       = coordinatesStorage ?? throw new ArgumentNullException(nameof(coordinatesStorage));
     ShardingSettingsProvider = shardingSettingsProvider ?? throw new ArgumentNullException(nameof(shardingSettingsProvider));
 }
 public WindowedStreamConsumerSettings(
     [NotNull] string streamName,
     [NotNull] Func <string> apiKeyProvider,
     [NotNull] IClusterProvider streamApiCluster,
     [NotNull] Func <T, TKey> keyProvider,
     [NotNull] Func <T, DateTimeOffset> timestampProvider,
     [NotNull] Func <TKey, IWindow> createWindow,
     [NotNull] Func <IBinaryBufferReader, IHerculesEventBuilder <T> > eventBuilderProvider,
     [NotNull] IStreamCoordinatesStorage leftCoordinatesStorage,
     [NotNull] IStreamCoordinatesStorage rightCoordinatesStorage,
     [NotNull] Func <StreamShardingSettings> shardingSettingsProvider)
     : base(
         streamName,
         apiKeyProvider,
         streamApiCluster,
         eventBuilderProvider,
         rightCoordinatesStorage,
         shardingSettingsProvider)
 {
     KeyProvider            = keyProvider ?? throw new ArgumentNullException(nameof(keyProvider));
     TimestampProvider      = timestampProvider ?? throw new ArgumentNullException(nameof(timestampProvider));
     CreateWindow           = createWindow ?? throw new ArgumentNullException(nameof(createWindow));
     LeftCoordinatesStorage = leftCoordinatesStorage ?? throw new ArgumentNullException(nameof(leftCoordinatesStorage));
 }