Beispiel #1
0
            public async Task<T> DecodeAsync<T>(CancellationToken cancellationToken)
            {
                if (_codec._multicodec)
                    await Multicodec.ConsumeHeaderAsync(_stream, _codec.Header, cancellationToken);

                var bytes = await MessageIo.ReadMessageAsync(_stream, cancellationToken);

                return (T)(object)bytes;
            }
Beispiel #2
0
            public T Decode<T>()
            {
                if (_codec._multicodec)
                    Multicodec.ConsumeHeader(_stream, _codec.Header);

                var bytes = MessageIo.ReadMessage(_stream);

                return (T)(object)bytes;
            }
Beispiel #3
0
            public async Task EncodeAsync<T>(T obj, CancellationToken cancellationToken)
            {
                var bytes = (byte[])(object)obj;
                if (bytes == null)
                    throw new InvalidDataException("input must be byte array");

                if (_codec._multicodec)
                    await _stream.WriteAsync(_codec.Header, 0, _codec.Header.Length, cancellationToken);

                await MessageIo.WriteMessageAsync(_stream, bytes, flush: true, cancellationToken: cancellationToken);
            }
Beispiel #4
0
            public void Encode<T>(T obj)
            {
                var bytes = (byte[])(object) obj;
                if (bytes == null)
                    throw new InvalidDataException("input must be byte array");

                if (_codec._multicodec)
                    _stream.Write(_codec.Header, 0, _codec.Header.Length);

                MessageIo.WriteMessage(_stream, bytes, flush: true);
            }
Beispiel #5
0
            public async Task <T> DecodeAsync <T>(CancellationToken cancellationToken = default(CancellationToken))
            {
                if (_codec._multicodec)
                {
                    await Multicodec.ConsumeHeaderAsync(_stream, _codec.Header, cancellationToken);
                }

                if (_codec._msgio)
                {
                    return(Deserialize <T>(await MessageIo.ReadMessageAsync(_stream, cancellationToken)));
                }

                return(ProtoBuf.Serializer.DeserializeWithLengthPrefix <T>(_stream, PrefixStyle.Fixed32BigEndian));
            }
Beispiel #6
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));
            }
Beispiel #7
0
            public async Task EncodeAsync<T>(T obj, CancellationToken cancellationToken)
            {
                if (_codec._multicodec)
                    await _stream.WriteAsync(_codec.Header, 0, _codec.Header.Length, cancellationToken);

                if (_codec._msgio)
                {
                    await MessageIo.WriteMessageAsync(_stream, Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(obj, Formatting.None)), cancellationToken: cancellationToken);
                }
                else
                {
                    var bytes = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(obj, Formatting.None) + '\n');
                    await _stream.WriteAsync(bytes, 0, bytes.Length, cancellationToken);
                }
            }
Beispiel #8
0
            public void Encode<T>(T obj)
            {
                if (_codec._multicodec)
                    _stream.Write(_codec.Header, 0, _codec.Header.Length);

                if (_codec._msgio)
                {
                    MessageIo.WriteMessage(_stream, Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(obj, Formatting.None)));
                }
                else
                {
                    var bytes = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(obj, Formatting.None) + '\n');
                    _stream.Write(bytes, 0, bytes.Length);
                }
            }
Beispiel #9
0
            public async Task EncodeAsync <T>(T obj, CancellationToken cancellationToken = default(CancellationToken))
            {
                if (_codec._multicodec)
                {
                    await _stream.WriteAsync(_codec.Header, 0, _codec.Header.Length, cancellationToken);
                }

                if (_codec._msgio)
                {
                    await MessageIo.WriteMessageAsync(_stream, Serialize(obj), cancellationToken : cancellationToken);
                }
                else
                {
                    ProtoBuf.Serializer.SerializeWithLengthPrefix(_stream, obj, PrefixStyle.Fixed32BigEndian);
                }
                await _stream.FlushAsync(cancellationToken);
            }
Beispiel #10
0
            public void Encode <T>(T obj)
            {
                if (_codec._multicodec)
                {
                    _stream.Write(_codec.Header, 0, _codec.Header.Length);
                }

                if (_codec._msgio)
                {
                    MessageIo.WriteMessage(_stream, Serialize(obj));
                }
                else
                {
                    ProtoBuf.Serializer.SerializeWithLengthPrefix(_stream, obj, PrefixStyle.Fixed32BigEndian);
                }
                _stream.Flush();
            }
Beispiel #11
0
            public async Task<T> DecodeAsync<T>(CancellationToken cancellationToken)
            {
                if (_codec._multicodec)
                    await Multicodec.ConsumeHeaderAsync(_stream, _codec.Header, cancellationToken);

                var json = string.Empty;
                if (_codec._msgio)
                {
                    var bytes = await MessageIo.ReadMessageAsync(_stream, cancellationToken);
                    json = Encoding.UTF8.GetString(bytes);
                }
                else
                {
                    json = await ReadLineAsync(_stream, cancellationToken);
                }

                return JsonConvert.DeserializeObject<T>(json);
            }
Beispiel #12
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);

            }