public LanguageServerJsonRpc(Stream sendingStream, Stream receivingStream, IJsonRpcMessageFormatter formatter, object target)
     : base(new HeaderDelimitedMessageHandler(sendingStream, receivingStream, formatter), target)
 {
 }
示例#2
0
 /// <summary>
 /// Initializes a new instance of the <see cref="PipeMessageHandler"/> class.
 /// </summary>
 /// <param name="pipe">The reader and writer to use for receiving/transmitting messages.</param>
 /// <param name="formatter">The formatter used to serialize messages.</param>
 public PipeMessageHandler(IDuplexPipe pipe, IJsonRpcMessageFormatter formatter)
     : this(Requires.NotNull(pipe, nameof(pipe)).Output, Requires.NotNull(pipe, nameof(pipe)).Input, formatter)
 {
 }
示例#3
0
 /// <summary>
 /// Initializes a new instance of the <see cref="PipeMessageHandler"/> class.
 /// </summary>
 /// <param name="writer">The writer to use for transmitting messages.</param>
 /// <param name="reader">The reader to use for receiving messages.</param>
 /// <param name="formatter">The formatter used to serialize messages.</param>
 public PipeMessageHandler(PipeWriter writer, PipeReader reader, IJsonRpcMessageFormatter formatter)
     : base(formatter)
 {
     this.Reader = reader;
     this.Writer = writer;
 }
示例#4
0
 /// <summary>
 /// Initializes a new instance of the <see cref="LengthHeaderMessageHandler"/> class.
 /// </summary>
 /// <param name="writer">The writer to use for transmitting messages.</param>
 /// <param name="reader">The reader to use for receiving messages.</param>
 /// <param name="formatter">The formatter to use for message serialization.</param>
 public LengthHeaderMessageHandler(PipeWriter?writer, PipeReader?reader, IJsonRpcMessageFormatter formatter)
     : base(writer, reader, formatter)
 {
     Requires.NotNull(formatter, nameof(formatter));
     this.formatter = formatter;
 }
示例#5
0
 /// <summary>
 /// Initializes a new instance of the <see cref="LengthHeaderMessageHandler"/> class.
 /// </summary>
 /// <param name="sendingStream">The stream to use for transmitting messages.</param>
 /// <param name="receivingStream">The stream to use for receiving messages.</param>
 /// <param name="formatter">The formatter to use to serialize <see cref="JsonRpcMessage"/> instances.</param>
 public LengthHeaderMessageHandler(Stream?sendingStream, Stream?receivingStream, IJsonRpcMessageFormatter formatter)
     : base(sendingStream, receivingStream, formatter)
 {
     Requires.NotNull(formatter, nameof(formatter));
     this.formatter = formatter;
 }
示例#6
0
 /// <summary>
 /// Initializes a new instance of the <see cref="HttpClientMessageHandler"/> class.
 /// </summary>
 /// <param name="httpClient">The <see cref="HttpClient"/> to use for transmitting JSON-RPC requests.</param>
 /// <param name="requestUri">The URI to POST to where the entity will be the JSON-RPC message.</param>
 /// <param name="formatter">The message formatter.</param>
 public HttpClientMessageHandler(HttpClient httpClient, Uri requestUri, IJsonRpcMessageFormatter formatter)
 {
     this.httpClient = httpClient ?? throw new ArgumentNullException(nameof(httpClient));
     this.requestUri = requestUri ?? throw new ArgumentNullException(nameof(requestUri));
     this.Formatter  = formatter ?? throw new ArgumentNullException(nameof(formatter));
 }
示例#7
0
 /// <summary>
 /// Initializes a new instance of the <see cref="LengthHeaderMessageHandler"/> class.
 /// </summary>
 /// <param name="pipe">The reader and writer to use for receiving/transmitting messages.</param>
 /// <param name="formatter">The formatter to use for message serialization.</param>
 public LengthHeaderMessageHandler(IDuplexPipe pipe, IJsonRpcMessageFormatter formatter)
     : base(pipe, formatter)
 {
     Requires.NotNull(formatter, nameof(formatter));
     this.formatter = formatter;
 }
示例#8
0
 /// <summary>
 /// Initializes a new instance of the <see cref="HeaderDelimitedMessageHandler"/> class.
 /// </summary>
 /// <param name="pipe">The duplex pipe to use for exchanging messages.</param>
 /// <param name="formatter">The formatter to use to serialize <see cref="JsonRpcMessage"/> instances.</param>
 public HeaderDelimitedMessageHandler(IDuplexPipe pipe, IJsonRpcMessageFormatter formatter)
     : this(pipe.Output, pipe.Input, formatter)
 {
 }
示例#9
0
 /// <summary>
 /// Initializes a new instance of the <see cref="HeaderDelimitedMessageHandler"/> class.
 /// </summary>
 /// <param name="duplexStream">The stream to use for exchanging messages.</param>
 /// <param name="formatter">The formatter to use to serialize <see cref="JsonRpcMessage"/> instances.</param>
 public HeaderDelimitedMessageHandler(Stream duplexStream, IJsonRpcMessageFormatter formatter)
     : this(duplexStream, duplexStream, formatter)
 {
 }
示例#10
0
 /// <summary>
 /// Initializes a new instance of the <see cref="HeaderDelimitedMessageHandler"/> class.
 /// </summary>
 /// <param name="writer">The writer to use for transmitting messages.</param>
 /// <param name="reader">The reader to use for receiving messages.</param>
 /// <param name="formatter">The formatter to use to serialize <see cref="JsonRpcMessage"/> instances.</param>
 public HeaderDelimitedMessageHandler(PipeWriter writer, PipeReader reader, IJsonRpcMessageFormatter formatter)
     : base(writer, reader, formatter)
 {
 }
示例#11
0
 /// <summary>
 /// Initializes a new instance of the <see cref="HeaderDelimitedMessageHandler"/> class.
 /// </summary>
 /// <param name="sendingStream">The stream to use for transmitting messages.</param>
 /// <param name="receivingStream">The stream to use for receiving messages.</param>
 /// <param name="formatter">The formatter to use to serialize <see cref="JsonRpcMessage"/> instances.</param>
 public HeaderDelimitedMessageHandler(Stream sendingStream, Stream receivingStream, IJsonRpcMessageFormatter formatter)
     : base(sendingStream, receivingStream, formatter)
 {
 }
 public MyStreamMessageHandler(Stream?sendingStream, Stream?receivingStream, IJsonRpcMessageFormatter formatter)
     : base(sendingStream, receivingStream, formatter)
 {
 }
 public DelayedWriter(Stream sendingStream, Stream receivingStream, IJsonRpcMessageFormatter formatter)
     : base(sendingStream, receivingStream, formatter)
 {
 }
示例#14
0
 /// <summary>
 /// Initializes a new instance of the <see cref="MessageHandlerBase"/> class.
 /// </summary>
 /// <param name="formatter">The formatter used to serialize messages.</param>
 public MessageHandlerBase(IJsonRpcMessageFormatter formatter)
 {
     Requires.NotNull(formatter, nameof(formatter));
     this.Formatter = formatter;
 }