public KMessageSequence <TNodeId> Decode(IKMessageContext <TNodeId> context, ReadOnlySequence <byte> buffer) { var p = global::MessagePack.MessagePackSerializer.Deserialize <MessageSequence>(buffer); var s = new KMessageSequence <TNodeId>(p.Network, Decode(context, p.Messages)); return(s); }
public KMessageSequence <TNodeId> Decode(IKMessageContext <TNodeId> resources, ReadOnlySequence <byte> buffer) { var p = MessageSequence.Parser.ParseFrom(buffer); var s = new KMessageSequence <TNodeId>(p.Network, Decode(resources, p.Messages)); return(s); }
/// <summary> /// Writes the message sequence to the HTTP response. /// </summary> /// <param name="context"></param> /// <param name="format"></param> /// <param name="responses"></param> /// <returns></returns> async Task WriteAsync(HttpContext context, IKMessageFormat <TNodeId> format, KMessageSequence <TNodeId> responses) { var w = PipeWriter.Create(context.Response.Body); format.Encode(new KMessageContext <TNodeId>(format.ContentType.Yield()), w, responses); await w.FlushAsync(context.RequestAborted); w.Complete(); }
/// <summary> /// Returns the responses. /// </summary> /// <param name="context"></param> /// <param name="responses"></param> /// <returns></returns> async Task ReplyAsync(HttpContext context, KMessageSequence <TNodeId> responses) { foreach (var accept in context.Request.Headers.GetCommaSeparatedValues("Accept")) { if (formats.FirstOrDefault(i => i.ContentType == accept) is IKMessageFormat <TNodeId> format) { await WriteAsync(context, format, responses); return; } } }
public void Encode(IKMessageContext <TNodeId> context, IBufferWriter <byte> buffer, KMessageSequence <TNodeId> messages) { encoder.Encode(context, buffer, messages); }
public void Encode(IKMessageContext <TNodeId> context, IBufferWriter <byte> buffer, KMessageSequence <TNodeId> sequence) { using var writer = new Utf8JsonWriter(buffer); writer.WriteStartObject(); writer.WriteNumber("network", sequence.Network); writer.WritePropertyName("messages"); Write(writer, context, sequence); writer.WriteEndObject(); }
public void Encode(IKMessageContext <TNodeId> context, IBufferWriter <byte> buffer, KMessageSequence <TNodeId> sequence) { var p = new MessageSequence(); p.Network = sequence.Network; p.Messages = Encode(context, sequence).ToArray(); global::MessagePack.MessagePackSerializer.Serialize(buffer, p); }
public void Encode(IKMessageContext <TNodeId> context, IBufferWriter <byte> buffer, KMessageSequence <TNodeId> sequence) { var p = new MessageSequence(); p.Network = sequence.Network; p.Messages.AddRange(Encode(context, sequence)); p.WriteTo(buffer); }
/// <summary> /// Initializes a new instance. /// </summary> /// <param name="format"></param> /// <param name="messages"></param> public KUdpPacket(string format, KMessageSequence <TNodeId>?messages) { this.format = format ?? throw new ArgumentNullException(nameof(format)); this.messages = messages; }