예제 #1
0
        public async ValueTask DeserializeAsync(ITcpDataReader dataReader, CancellationToken ct)
        {
            TableName = await dataReader.ReadPascalStringAsync(ct);

            PartitionKey = await dataReader.ReadPascalStringAsync(ct);

            Data = await dataReader.ReadByteArrayAsync(ct);
        }
예제 #2
0
        public static async ValueTask <ushort> ReadUShortAsync(this ITcpDataReader reader, CancellationToken token)
        {
            var data = await reader.ReadAsyncAsync(sizeof(ushort), token);

            var result = BitConverter.ToUInt16(data.Span);

            reader.CommitReadData(data);
            return(result);
        }
예제 #3
0
        public static async ValueTask <byte[]> ReadByteArrayAsync(this ITcpDataReader reader, CancellationToken token)
        {
            var strLen = await reader.ReadIntAsync(token);

            var result = await reader.ReadAsyncAsync(strLen, token);

            reader.CommitReadData(result);
            return(result.AsArray());
        }
예제 #4
0
        public static async ValueTask <long> ReadLongAsync(this ITcpDataReader reader, CancellationToken token)
        {
            var data = await reader.ReadAsyncAsync(sizeof(long), token);

            var result = BitConverter.ToInt64(data.Span);

            reader.CommitReadData(data);
            return(result);
        }
        public static async ValueTask <uint> ReadUIntAsync(this ITcpDataReader reader, CancellationToken ct)
        {
            var data = await reader.ReadAsyncAsync(sizeof(uint), ct);

            var result = BitConverter20.ToUInt32(data.Span);

            reader.CommitReadData(data);
            return(result);
        }
예제 #6
0
        public static async ValueTask <IMyNoSqlTcpContract> DeserializeAsync(ITcpDataReader dataReader, CancellationToken ct)
        {
            var command = (CommandType)await dataReader.ReadAndCommitByteAsync(ct);

            var instance = CommandToContractMapper[command]();

            await instance.DeserializeAsync(dataReader, ct);

            return(instance);
        }
예제 #7
0
        public static async ValueTask <string> ReadStringAsync(this ITcpDataReader reader, CancellationToken token, Encoding encoding = null)
        {
            var strLen = await reader.ReadIntAsync(token);

            var data = await reader.ReadAsyncAsync(strLen, token);

            encoding ??= Encoding.UTF8;
            var result = encoding.GetString(data.Span);

            reader.CommitReadData(data);
            return(result);
        }
        public static async ValueTask <string> ReadStringAsync(this ITcpDataReader reader, CancellationToken ct, Encoding encoding = null)
        {
            var strLen = await reader.ReadIntAsync(ct);

            var data = await reader.ReadAsyncAsync(strLen, ct);

            if (encoding == null)
            {
                encoding = Encoding.UTF8;
            }

            var result = encoding.GetString(data.AsArray());

            reader.CommitReadData(data);
            return(result);
        }
예제 #9
0
 public async ValueTask DeserializeAsync(ITcpDataReader dataReader, CancellationToken ct)
 {
     Name = await dataReader.ReadPascalStringAsync(ct);
 }
예제 #10
0
 public ValueTask DeserializeAsync(ITcpDataReader dataReader, CancellationToken ct)
 {
     return(new ValueTask());
 }
예제 #11
0
        public async ValueTask <IMyNoSqlTcpContract> DeserializeAsync(ITcpDataReader dataReader, [EnumeratorCancellation] CancellationToken ct)
        {
            var result = await SerializerDeserializer.DeserializeAsync(dataReader, ct);

            return(result);
        }
 public ValueTask <IMyNoSqlTcpContract> DeserializeAsync(ITcpDataReader dataReader, CancellationToken ct)
 {
     return(SerializerDeserializer.DeserializeAsync(dataReader, ct));
 }