public static RequestParameters DecodeRequest(ClientMessage clientMessage)
        {
            using var iterator = clientMessage.GetEnumerator();
            var request      = new RequestParameters();
            var initialFrame = iterator.Take();

            request.TargetReplicaUUID = initialFrame.Bytes.ReadGuidL(RequestTargetReplicaUUIDFieldOffset);
            request.Name = StringCodec.Decode(iterator);
            request.ReplicaTimestamps = EntryListUUIDLongCodec.Decode(iterator);
            return(request);
        }
예제 #2
0
        public static ResponseParameters DecodeResponse(ClientMessage clientMessage)
        {
            using var iterator = clientMessage.GetEnumerator();
            var response     = new ResponseParameters();
            var initialFrame = iterator.Take();

            response.Value             = initialFrame.Bytes.ReadLongL(ResponseValueFieldOffset);
            response.ReplicaCount      = initialFrame.Bytes.ReadIntL(ResponseReplicaCountFieldOffset);
            response.ReplicaTimestamps = EntryListUUIDLongCodec.Decode(iterator);
            return(response);
        }
예제 #3
0
        public static ResponseParameters DecodeResponse(ClientMessage clientMessage)
        {
            var iterator     = clientMessage.GetIterator();
            var response     = new ResponseParameters();
            var initialFrame = iterator.Next();

            response.Value             = DecodeLong(initialFrame.Content, ResponseValueFieldOffset);
            response.ReplicaCount      = DecodeInt(initialFrame.Content, ResponseReplicaCountFieldOffset);
            response.ReplicaTimestamps = EntryListUUIDLongCodec.Decode(iterator);
            return(response);
        }