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); }
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); }
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); }
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); }