public static IMetricMessageSender GetTransport(string address) { IMetricMessageSender transport = null; Uri uri = new Uri(address); string scheme = uri.Scheme; switch (scheme) { case "tcp": transport = new MetricTcpSender(uri.Host, uri.Port); break; case "udp": transport = new MetricUdpSender(uri.Host, uri.Port); break; case "unix": transport = new MetricUnixSender(uri.AbsolutePath); break; case "unixgram": transport = new MetricUnixgramSender(uri.AbsolutePath); break; default: throw new UriFormatException($"not allowed scheme {scheme}"); } return(transport); }
/// <summary> /// /// </summary> /// <exception cref="ArgumentNullException"></exception> /// <exception cref="UriFormatException"></exception> /// <param name="address"></param> public TgfClientProvider(string address, string[] tagKeys, string[] tagValues) { transport = GetTransport(address); _tagNames = tagKeys; _tagValues = tagValues; }
/// <summary> /// /// </summary> /// <param name="transport"></param> /// <param name="tagKeys">Список тегов по-умолчанию</param> /// <param name="tagValues">Список значений тегов по-умолчанию</param> public TgfClient(IMetricMessageSender transport, string[] tagKeys, string[] tagValues) { this.transport = transport; tagKeysDef = tagKeys; tagValuesDef = tagValues; }
/// <summary> /// /// </summary> /// <exception cref="ArgumentNullException"></exception> /// <exception cref="UriFormatException"></exception> /// <param name="address"></param> public TgfClientProvider(string address) { transport = GetTransport(address); }
public TgfClient(IMetricMessageSender transport) { this.transport = transport; }