Ejemplo n.º 1
0
 private void HandleRequest(string method, NumberOrString id, string json)
 {
     if (handlers.TryGetRequestHandler(method, out var handler))
     {
         try
         {
             var tokenSource = new CancellationTokenSource();
             handlers.AddCancellationTokenSource(id, tokenSource);
             var request         = Serializer.Instance.Deserialize(handler.RequestType, json);
             var requestResponse = (ResponseMessageBase)handler.Handle(request, this, tokenSource.Token);
             handlers.RemoveCancellationTokenSource(id);
             requestResponse.id = id;
             SendMessage(requestResponse);
         }
         catch (Exception ex)
         {
             Console.Error.WriteLine(ex);
             var requestErrorResponse = Reflector.CreateErrorResponse(handler.ResponseType, ex.ToString());
             SendMessage(requestErrorResponse);
         }
     }
     else
     {
         Console.Error.WriteLine("WARN: server does not support a request '" + method + "'");
     }
 }
Ejemplo n.º 2
0
        public NumberOrString Next()
        {
            var ns = new NumberOrString(_id);

            _id = (_id == long.MaxValue) ? 0L : _id + 1;
            return(ns);
        }
        public NumberOrString Next()
        {
            NumberOrString ns = new NumberOrString(id);

            id = id == long.MaxValue ? 0L : id + 1;
            return(ns);
        }
Ejemplo n.º 4
0
 private void HandleResponse(NumberOrString id, string json)
 {
     if (Handlers.TryRemoveResponseHandler(id, out ResponseHandler handler))
     {
         object response = Serializer.Instance.Deserialize(handler.ResponseType, json);
         handler.Handle(response);
     }
 }
Ejemplo n.º 5
0
        public void SendCancellation(NumberOrString id)
        {
            var message = new NotificationMessage <CancelParams> {
                method = "$/cancelRequest", @params = new CancelParams {
                    id = id
                }
            };

            SendMessage(message);
        }
Ejemplo n.º 6
0
        private void HandleCancellation(string json)
        {
            NotificationMessage <CancelParams> cancellation = (NotificationMessage <CancelParams>)Serializer.Instance.Deserialize(typeof(NotificationMessage <CancelParams>), json);
            NumberOrString id = cancellation.Params.Id;

            if (Handlers.TryRemoveCancellationTokenSource(id, out CancellationTokenSource tokenSource))
            {
                tokenSource.Cancel();
            }
        }
Ejemplo n.º 7
0
 private void HandleResponse(NumberOrString id, string json)
 {
     if (handlers.TryRemoveResponseHandler(id, out var handler))
     {
         var response = Serializer.Instance.Deserialize(handler.ResponseType, json);
         handler.Handle(response);
     }
     else
     {
         var idString = (id.IsLeft) ? id.Left.ToString() : id.Right;
         Console.Error.WriteLine("WARN: server does not expect a response to '" + idString + "'");
     }
 }
Ejemplo n.º 8
0
 private void HandleRequest(string method, NumberOrString id, string json)
 {
     if (Handlers.TryGetRequestHandler(method, out RequestHandler handler))
     {
         try
         {
             CancellationTokenSource tokenSource = new CancellationTokenSource();
             Handlers.AddCancellationTokenSource(id, tokenSource);
             object request = Serializer.Instance.Deserialize(handler.RequestType, json);
             ResponseMessageBase requestResponse = (ResponseMessageBase)handler.Handle(request, this, tokenSource.Token);
             Handlers.RemoveCancellationTokenSource(id);
             requestResponse.Id = id;
             SendMessage(requestResponse);
         }
         catch (Exception ex)
         {
             Console.Error.WriteLine(ex);
             ResponseMessageBase requestErrorResponse = Reflector.CreateErrorResponse(handler.ResponseType, ex.ToString());
             SendMessage(requestErrorResponse);
         }
     }
 }
Ejemplo n.º 9
0
 internal ResponseHandler(NumberOrString id, Type responseType, ResponseHandlerDelegate handler)
 {
     Id           = id;
     ResponseType = responseType;
     this.handler = handler;
 }
Ejemplo n.º 10
0
 internal bool TryRemoveCancellationTokenSource(NumberOrString id, out CancellationTokenSource tokenSource)
 {
     return(cancellations.TryRemove(id, out tokenSource));
 }
Ejemplo n.º 11
0
 internal void RemoveCancellationTokenSource(NumberOrString id)
 {
     cancellations.Remove(id);
 }
Ejemplo n.º 12
0
 internal void AddCancellationTokenSource(NumberOrString id, CancellationTokenSource tokenSource)
 {
     cancellations.Set(id, tokenSource);
 }
Ejemplo n.º 13
0
 internal bool TryRemoveResponseHandler(NumberOrString id, out ResponseHandler responseHandler)
 {
     return(responseHandlers.TryRemove(id, out responseHandler));
 }
Ejemplo n.º 14
0
 internal ResponseHandler(NumberOrString id, Type responseType, ResponseHandlerDelegate handler)
 {
     _id           = id;
     _responseType = responseType;
     _handler      = handler;
 }