private InfluxDBChannel(IInfluxDBHttpClient httpClient, string database, string retentionPolicy, Action <Exception> errorCallback, TimeSpan?forceFlushInterval, int channelCapacity) { _httpClient = httpClient; _errorCallback = errorCallback; _path = retentionPolicy == null ? $"write?db={Uri.EscapeDataString(database)}&precision=ms" : $"write?db={Uri.EscapeDataString(database)}&precision=ms&rp={Uri.EscapeDataString(retentionPolicy)}"; _channel = Channel.CreateBounded <LineCollection>(new BoundedChannelOptions(channelCapacity) { FullMode = BoundedChannelFullMode.Wait, SingleReader = true }); _lines = LineCollectionPool.Shared.Rent(); _completion = Run(); if (forceFlushInterval != null) { _forceFlushInterval = forceFlushInterval.Value; _timer = new Timer(ForceFlush, null, _forceFlushInterval, _forceFlushInterval); } }
public InfluxHttpContent(LineCollection lines) { _lines = lines ?? throw new ArgumentNullException(nameof(lines)); }
public LineCollectionEnumerator(LineCollection lines) { _lines = lines; _current = -1; }
public void Return(LineCollection collection) { _pool.Add(collection); }