Example #1
0
 internal InfluxDb(InfluxDbClientConfiguration influxDbClientConfiguration)
 {
     switch (influxDbClientConfiguration.InfluxVersion)
     {
         case InfluxVersion.Auto:
             _influxDbClient = new InfluxDbClientAutoVersion(influxDbClientConfiguration);
             break;
         case InfluxVersion.v09x:
             _influxDbClient = new InfluxDbClientBase(influxDbClientConfiguration);
             break;
         case InfluxVersion.v096:
             _influxDbClient = new InfluxDbClientV096(influxDbClientConfiguration);
             break;
         case InfluxVersion.v095:
             _influxDbClient = new InfluxDbClientV095(influxDbClientConfiguration);
             break;
         case InfluxVersion.v092:
             _influxDbClient = new InfluxDbClientV092(influxDbClientConfiguration);
             break;
         case InfluxVersion.v08x:
             throw new NotImplementedException();
         default:
             throw new ArgumentOutOfRangeException("influxDbClientConfiguration", String.Format("Unknown version {0}.", influxDbClientConfiguration));
     }
 }
        public InfluxDbClientAutoVersion(InfluxDbClientConfiguration influxDbClientConfiguration)
        {
            _influxDbClient = new InfluxDbClientBase(influxDbClientConfiguration);
            var errorHandlers = new List<ApiResponseErrorHandlingDelegate>();
            // TODO: needs testing - potentially bad if it's going to ping for every request
            var result = _influxDbClient.Ping(errorHandlers).Result;
            var databaseVersion = result.Body;

            if (databaseVersion.StartsWith("0.9"))
            {
                switch (databaseVersion)
                {
                    case "0.9.2":
                        _influxDbClient = new InfluxDbClientV092(influxDbClientConfiguration);
                        break;
                    case "0.9.5":
                        _influxDbClient = new InfluxDbClientV092(influxDbClientConfiguration);
                        break;
                    case "0.9.6":
                        _influxDbClient = new InfluxDbClientV092(influxDbClientConfiguration);
                        break;
                }
            }
            else
            {
                throw new InvalidOperationException(String.Format("Version {0} is not supported by the Auto configuration.", databaseVersion));
            }
        }
 public InfluxDbClientV095(InfluxDbClientConfiguration configuration) 
     : base(configuration)
 {
 }
 public InfluxDbClientBase(InfluxDbClientConfiguration configuration)
 {
     _configuration = configuration;
 }