using System.Collections.Generic; using System.Threading; using InfluxDB.Client.Core.Flux.Domain; using InfluxDB.Client.Core.Flux.Internal; namespace InfluxDB.Client.Core.Flux.Serialization { public interface IAnnotatedCsvParser { /// /// Parsing query results in annotated CSV format into list of . /// /// Query results in annotated CSV format /// To cancel the parsing /// Parsed Annotated CSV into list of List Parse(string annotatedCsv, CancellationToken cancellationToken = default); } /// /// Parser for processing Annotated CSV. /// public class AnnotatedCsvParser : IAnnotatedCsvParser { private readonly FluxCsvParser _parser; /// /// Public constructor. /// public AnnotatedCsvParser() { _parser = new FluxCsvParser(); } /// /// Parsing query results in annotated CSV format into list of . /// /// Query results in annotated CSV format /// To cancel the parsing /// Parsed Annotated CSV into list of public List Parse(string annotatedCsv, CancellationToken cancellationToken = default) { var consumer = new FluxCsvParser.FluxResponseConsumerTable(); _parser.ParseFluxResponse(annotatedCsv, cancellationToken, consumer); return consumer.Tables; } } }