public static ResponseParameters DecodeResponse(ClientMessage clientMessage) { using var iterator = clientMessage.GetEnumerator(); var response = new ResponseParameters(); iterator.Take(); // empty initial frame response.IterationPointers = EntryListIntegerIntegerCodec.Decode(iterator); response.Keys = ListMultiFrameCodec.Decode(iterator, DataCodec.Decode); return(response); }
public static ResponseParameters DecodeResponse(ClientMessage clientMessage) { var iterator = clientMessage.GetIterator(); var response = new ResponseParameters(); //empty initial frame iterator.Next(); response.Results = ListMultiFrameCodec.DecodeContainsNullable(iterator, DataCodec.Decode); response.IterationPointers = EntryListIntegerIntegerCodec.Decode(iterator); return(response); }
public static ClientMessage EncodeResponse(ICollection <KeyValuePair <int, int> > iterationPointers, ICollection <IData> keys) { var clientMessage = new ClientMessage(); var initialFrame = new Frame(new byte[ResponseInitialFrameSize], (FrameFlags)ClientMessageFlags.Unfragmented); initialFrame.Bytes.WriteIntL(Messaging.FrameFields.Offset.MessageType, ResponseMessageType); clientMessage.Append(initialFrame); EntryListIntegerIntegerCodec.Encode(clientMessage, iterationPointers); ListMultiFrameCodec.Encode(clientMessage, keys, DataCodec.Encode); return(clientMessage); }
public static RequestParameters DecodeRequest(ClientMessage clientMessage) { using var iterator = clientMessage.GetEnumerator(); var request = new RequestParameters(); var initialFrame = iterator.Take(); request.Batch = initialFrame.Bytes.ReadIntL(RequestBatchFieldOffset); request.Name = StringCodec.Decode(iterator); request.IterationPointers = EntryListIntegerIntegerCodec.Decode(iterator); return(request); }
public static ClientMessage EncodeRequest(string name, ICollection <KeyValuePair <int, int> > iterationPointers, int batch) { var clientMessage = CreateForEncode(); clientMessage.IsRetryable = true; clientMessage.OperationName = "Map.FetchKeys"; var initialFrame = new Frame(new byte[RequestInitialFrameSize], UnfragmentedMessage); EncodeInt(initialFrame.Content, TypeFieldOffset, RequestMessageType); EncodeInt(initialFrame.Content, PartitionIdFieldOffset, -1); EncodeInt(initialFrame.Content, RequestBatchFieldOffset, batch); clientMessage.Add(initialFrame); StringCodec.Encode(clientMessage, name); EntryListIntegerIntegerCodec.Encode(clientMessage, iterationPointers); return(clientMessage); }
public static ClientMessage EncodeRequest(string name, ICollection <KeyValuePair <int, int> > iterationPointers, int batch) { var clientMessage = new ClientMessage { IsRetryable = true, OperationName = "Map.FetchKeys" }; 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.WriteIntL(RequestBatchFieldOffset, batch); clientMessage.Append(initialFrame); StringCodec.Encode(clientMessage, name); EntryListIntegerIntegerCodec.Encode(clientMessage, iterationPointers); return(clientMessage); }