Esempio n. 1
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);
        }
        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);
        }
Esempio n. 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);
        }
Esempio n. 4
0
        public static ClientMessage EncodeResponse(long @value, ICollection <KeyValuePair <Guid, long> > replicaTimestamps, int replicaCount)
        {
            var clientMessage = new ClientMessage();
            var initialFrame  = new Frame(new byte[ResponseInitialFrameSize], (FrameFlags)ClientMessageFlags.Unfragmented);

            initialFrame.Bytes.WriteIntL(Messaging.FrameFields.Offset.MessageType, ResponseMessageType);
            initialFrame.Bytes.WriteLongL(ResponseValueFieldOffset, @value);
            initialFrame.Bytes.WriteIntL(ResponseReplicaCountFieldOffset, replicaCount);
            clientMessage.Append(initialFrame);
            EntryListUUIDLongCodec.Encode(clientMessage, replicaTimestamps);
            return(clientMessage);
        }
Esempio n. 5
0
        public static ClientMessage EncodeRequest(string name, ICollection <KeyValuePair <Guid, long> > replicaTimestamps, Guid targetReplicaUUID)
        {
            var clientMessage = CreateForEncode();

            clientMessage.IsRetryable   = true;
            clientMessage.OperationName = "PNCounter.Get";
            var initialFrame = new Frame(new byte[RequestInitialFrameSize], UnfragmentedMessage);

            EncodeInt(initialFrame.Content, TypeFieldOffset, RequestMessageType);
            EncodeInt(initialFrame.Content, PartitionIdFieldOffset, -1);
            EncodeGuid(initialFrame.Content, RequestTargetReplicaUUIDFieldOffset, targetReplicaUUID);
            clientMessage.Add(initialFrame);
            StringCodec.Encode(clientMessage, name);
            EntryListUUIDLongCodec.Encode(clientMessage, replicaTimestamps);
            return(clientMessage);
        }
        public static ClientMessage EncodeRequest(string name, ICollection <KeyValuePair <Guid, long> > replicaTimestamps, Guid targetReplicaUUID)
        {
            var clientMessage = new ClientMessage
            {
                IsRetryable   = true,
                OperationName = "PNCounter.Get"
            };
            var initialFrame = new Frame(new byte[RequestInitialFrameSize], (FrameFlags)ClientMessageFlags.Unfragmented);

            initialFrame.Bytes.WriteIntL(Messaging.FrameFields.Offset.MessageType, RequestMessageType);
            initialFrame.Bytes.WriteIntL(Messaging.FrameFields.Offset.PartitionId, -1);
            initialFrame.Bytes.WriteGuidL(RequestTargetReplicaUUIDFieldOffset, targetReplicaUUID);
            clientMessage.Append(initialFrame);
            StringCodec.Encode(clientMessage, name);
            EntryListUUIDLongCodec.Encode(clientMessage, replicaTimestamps);
            return(clientMessage);
        }