Class LengthHeaderMessageHandler
- Namespace
- StreamJsonRpc
- Assembly
- StreamJsonRpc.dll
A minimal header for each message that simply declares content length.
public class LengthHeaderMessageHandler : PipeMessageHandler, IJsonRpcMessageHandler, IDisposableObservable, IDisposable, IAsyncDisposable, IJsonRpcMessageBufferManager
- Inheritance
-
LengthHeaderMessageHandler
- Implements
- Inherited Members
Remarks
The length is expressed as a big endian, 4 byte integer.
Constructors
LengthHeaderMessageHandler(IDuplexPipe, IJsonRpcMessageFormatter)
Initializes a new instance of the LengthHeaderMessageHandler class.
public LengthHeaderMessageHandler(IDuplexPipe pipe, IJsonRpcMessageFormatter formatter)
Parameters
pipe
IDuplexPipeThe reader and writer to use for receiving/transmitting messages.
formatter
IJsonRpcMessageFormatterThe formatter to use for message serialization.
LengthHeaderMessageHandler(PipeWriter?, PipeReader?, IJsonRpcMessageFormatter)
Initializes a new instance of the LengthHeaderMessageHandler class.
public LengthHeaderMessageHandler(PipeWriter? writer, PipeReader? reader, IJsonRpcMessageFormatter formatter)
Parameters
writer
PipeWriterThe writer to use for transmitting messages.
reader
PipeReaderThe reader to use for receiving messages.
formatter
IJsonRpcMessageFormatterThe formatter to use for message serialization.
LengthHeaderMessageHandler(Stream?, Stream?, IJsonRpcMessageFormatter)
Initializes a new instance of the LengthHeaderMessageHandler class.
public LengthHeaderMessageHandler(Stream? sendingStream, Stream? receivingStream, IJsonRpcMessageFormatter formatter)
Parameters
sendingStream
StreamThe stream to use for transmitting messages.
receivingStream
StreamThe stream to use for receiving messages.
formatter
IJsonRpcMessageFormatterThe formatter to use to serialize JsonRpcMessage instances.
Methods
ReadCoreAsync(CancellationToken)
Reads a distinct and complete message, waiting for one if necessary.
protected override ValueTask<JsonRpcMessage?> ReadCoreAsync(CancellationToken cancellationToken)
Parameters
cancellationToken
CancellationTokenA token to cancel the read request.
Returns
- ValueTask<JsonRpcMessage>
A task whose result is the received message. A null string indicates the stream has ended. An empty string should never be returned.
Write(JsonRpcMessage, CancellationToken)
Writes a message to the pipe.
protected override void Write(JsonRpcMessage content, CancellationToken cancellationToken)
Parameters
content
JsonRpcMessageThe message to write.
cancellationToken
CancellationTokenA token to cancel the transmission.
Remarks
Implementations may assume the method is never called before the previous call has completed. They can assume their caller will invoke FlushAsync(CancellationToken) on their behalf after writing is completed.