コード例 #1
0
 private async Task Process(MsgOp msg, NatsClient natsClient)
 {
     ExchangeCode          code     = ExchangeCode.UNKNOWN;
     string                payload  = msg.GetPayloadAsString();
     Notification <Candle> response = JsonConvert.DeserializeObject <Notification <Candle> >(payload[1..]);
コード例 #2
0
 public static object FromProtobuf(this MsgOp msgOp, Type objectType)
 {
     return(ProtobufEncoding.Default.Decode(msgOp.Payload.Span, objectType));
 }
コード例 #3
0
 public static T FromProtobuf <T>(this MsgOp msgOp) where T : class
 => FromProtobuf(msgOp, typeof(T)) as T;
コード例 #4
0
 public static T FromJson <T>(this MsgOp msgOp) where T : class
 => FromJson(msgOp, typeof(T)) as T;
コード例 #5
0
 public static object FromJson(this MsgOp msgOp, Type objectType)
 {
     return(JsonEncoding.Default.Decode(msgOp.Payload.Span, objectType));
 }
コード例 #6
0
        private static MsgOp ParseMsgOp(Stream stream, StringBuilder sb)
        {
            var  segments  = new string[3];
            var  segmentsI = -1;
            var  segment   = sb;
            int  payloadSize;
            char burn;

            while (true)
            {
                var c = stream.ReadChar();
                if (c == Cr)
                {
                    payloadSize = int.Parse(segment.ToString());
                    burn        = stream.ReadChar();
                    if (burn != Lf)
                    {
                        throw CreateParserException(MsgOp.Name, Lf, burn);
                    }
                    break;
                }

                if (!IsDelimMarker(c))
                {
                    segment.Append(c);
                }
                else
                {
                    segments[++segmentsI] = segment.ToString();
                    segment.Clear();
                }
            }

            var payload   = new byte[payloadSize];
            var bytesRead = 0;

            while (bytesRead < payloadSize)
            {
                bytesRead += stream.Read(payload, bytesRead, payloadSize - bytesRead);
            }

            var msg = new MsgOp(
                segments[0],
                segments[1],
                payload,
                segments[2]);

            burn = stream.ReadChar();
            if (burn != Cr)
            {
                throw CreateParserException(MsgOp.Name, Cr, burn);
            }

            burn = stream.ReadChar();
            if (burn != Lf)
            {
                throw CreateParserException(MsgOp.Name, Lf, burn);
            }

            return(msg);
        }
コード例 #7
0
 private async Task Process(MsgOp msg)
 {
     string payload = msg.GetPayloadAsString();
     Notification <Order> response = JsonConvert.DeserializeObject <Notification <Order> >(payload[1..]);
コード例 #8
0
 private async Task Process(MsgOp msg, NatsClient natsClient)
 {
     string payload = msg.GetPayloadAsString();
     Notification <Trade> response = JsonConvert.DeserializeObject <Notification <Trade> >(payload[1..]);