Ejemplo n.º 1
0
        public override async Task WriteAsync(IEnumerable <Point> points)
        {
            LineProtocolWriter writer = new LineProtocolWriter(TimestampPrecision);

            foreach (var point in points)
            {
                writer.Write(point);
            }

            HttpResponseMessage response = await _client.PostAsync(_writeUri, new StringContent(writer.ToString()));

            if (response.StatusCode == HttpStatusCode.NoContent)
            {
                return;
            }

            if (response.StatusCode == HttpStatusCode.BadRequest)
            {
                throw new FormatException(await response.Content.ReadAsStringAsync());
            }

            if (response.StatusCode == HttpStatusCode.NotFound)
            {
                throw new InvalidDataException(await response.Content.ReadAsStringAsync());
            }

            if (response.StatusCode == HttpStatusCode.InternalServerError)
            {
                throw new Exception(await response.Content.ReadAsStringAsync());
            }

            response.EnsureSuccessStatusCode();
        }
        public override Task WriteAsync(IEnumerable <Point> points)
        {
            LineProtocolWriter writer = new LineProtocolWriter(TimestampPrecision);

            foreach (var point in points)
            {
                writer.Write(point);
            }

            byte[] buffer           = Encoding.UTF8.GetBytes(writer.ToString());
            var    completionSource = new TaskCompletionSource <object>();
            var    args             = new SocketAsyncEventArgs
            {
                RemoteEndPoint = _endPoint,
                UserToken      = completionSource
            };

            args.SetBuffer(buffer, 0, buffer.Length);
            args.Completed += Completed;
            _socket.SendToAsync(args);

            return(completionSource.Task);
        }