Ejemplo n.º 1
0
        public static bool TryParseMessage(ref ReadOnlySequence <byte> input, out EventPipeMessage message)
        {
            if (input.PositionOf(RecordSeparator) is SequencePosition position)
            {
                var buffer = input.Slice(input.Start, position);
                input = input.Slice(input.GetPosition(1, position));

                message = ParseMessage(buffer);
                return(true);
            }
            else
            {
                message = null;
                return(false);
            }
        }
Ejemplo n.º 2
0
 public static void WriteMessage(EventPipeMessage message, PipeWriter writer)
 {
     if (ReferenceEquals(message, PingMessage.Instance))
     {
         writer.Write(SerializedPing.Span);
     }
     else
     {
         var json = new JObject(
             new JProperty("type", message.Type),
             new JProperty("payload", JObject.FromObject(message)));
         var str   = json.ToString(Formatting.None);
         var bytes = Encoding.UTF8.GetBytes(str);
         writer.Write(bytes.AsSpan());
         writer.Write(RecordSeparatorMemory.Span);
     }
 }