public StreamBinaryEventsWriter([NotNull] StreamBinaryEventsWriterSettings settings, [CanBeNull] ILog log) { this.settings = settings ?? throw new ArgumentNullException(nameof(settings)); this.log = log = (log ?? LogProvider.Get()).ForContext <StreamBinaryEventsWriter>(); buffer = new BinaryBufferWriter(0) { Endianness = Endianness.Big }; buffer.Write(0); }
public StreamBinaryEventsWriter(StreamBinaryEventsWriterSettings settings, ILog log) { this.settings = settings ?? throw new ArgumentNullException(nameof(settings)); this.log = (log ?? LogProvider.Get()).ForContext <StreamBinaryEventsWriter>(); iterationMetric = settings.MetricContext.CreateSummary("iteration", "type", new SummaryConfig { Quantiles = new[] { 0.5, 0.75, 1 } }); emptyWriters = Channel.CreateUnbounded <Writer>(new UnboundedChannelOptions { SingleReader = true, SingleWriter = false, AllowSynchronousContinuations = false }); for (var i = 0; i < settings.WritersPoolCapacity; i++) { emptyWriters.Writer.WriteAsync(new Writer(settings.WriterCapacity.Bytes)).AsTask().GetAwaiter().GetResult(); } }