public static ClientMessage EncodeIMapBatchInvalidationEvent(ICollection <IData> keys, ICollection <Guid> sourceUuids, ICollection <Guid> partitionUuids, ICollection <long> sequences) { var clientMessage = new ClientMessage(); var initialFrame = new Frame(new byte[EventIMapBatchInvalidationInitialFrameSize], (FrameFlags)ClientMessageFlags.Unfragmented); initialFrame.Bytes.WriteIntL(Messaging.FrameFields.Offset.MessageType, EventIMapBatchInvalidationMessageType); initialFrame.Bytes.WriteIntL(Messaging.FrameFields.Offset.PartitionId, -1); clientMessage.Append(initialFrame); clientMessage.Flags |= ClientMessageFlags.Event; ListMultiFrameCodec.Encode(clientMessage, keys, DataCodec.Encode); ListUUIDCodec.Encode(clientMessage, sourceUuids); ListUUIDCodec.Encode(clientMessage, partitionUuids); ListLongCodec.Encode(clientMessage, sequences); return(clientMessage); }