Exemplo n.º 1
0
            public T Decode <T>()
            {
                if (_codec.Wrap)
                {
                    Multicodec.ConsumeHeader(_stream, _codec.Header);
                }

                var hdr = Multicodec.PeekHeader(_stream);

                if (hdr == null || hdr.Length == 0)
                {
                    throw new EndOfStreamException();
                }

                var subcodec = _codec._codecs.SingleOrDefault(c => c.Header.SequenceEqual(hdr));

                if (subcodec == null)
                {
                    throw new Exception($"no codec found for {Encoding.UTF8.GetString(hdr)}");
                }

                _codec.Last = subcodec;

                return(subcodec.Decoder(_stream).Decode <T>());
            }
Exemplo n.º 2
0
            public T Decode <T>()
            {
                if (_codec._multicodec)
                {
                    Multicodec.ConsumeHeader(_stream, _codec.Header);
                }

                return(CBORObject.Read(_stream).ToObject <T>());
            }
Exemplo n.º 3
0
            public T Decode<T>()
            {
                if (_codec._multicodec)
                    Multicodec.ConsumeHeader(_stream, _codec.Header);

                var bytes = MessageIo.ReadMessage(_stream);

                return (T)(object)bytes;
            }
Exemplo n.º 4
0
            public T Decode <T>()
            {
                if (_codec._multicodec)
                {
                    Multicodec.ConsumeHeader(_stream, _codec.Header);
                }

                var cbor = CBORObject.Read(_stream);

                return(JsonConvert.DeserializeObject <T>(cbor.ToJSONString()));
            }
Exemplo n.º 5
0
            public T Decode <T>()
            {
                if (_codec._multicodec)
                {
                    Multicodec.ConsumeHeader(_stream, _codec.Header);
                }

                if (_codec._msgio)
                {
                    return(Deserialize <T>(MessageIo.ReadMessage(_stream)));
                }

                return(ProtoBuf.Serializer.DeserializeWithLengthPrefix <T>(_stream, PrefixStyle.Fixed32BigEndian));
            }
Exemplo n.º 6
0
            public T Decode<T>()
            {
                if (_codec._multicodec)
                    Multicodec.ConsumeHeader(_stream, _codec.Header);

                var json = string.Empty;
                if (_codec._msgio)
                {
                    var bytes = MessageIo.ReadMessage(_stream);
                    json = Encoding.UTF8.GetString(bytes);
                }
                else
                {
                    json = ReadLine(_stream);
                }

                return JsonConvert.DeserializeObject<T>(json);

            }