public static ReusableMemoryStream Serialize <TRequest>(ReusableMemoryStream stream, TRequest request, int correlationId, byte[] clientId, Basics.ApiKey apiKey, Basics.ApiVersion apiVersion, object extra) where TRequest : ISerializableRequest { Basics.WriteRequestHeader(stream, correlationId, apiKey, apiVersion, clientId); request.SerializeBody(stream, extra, apiVersion); Basics.WriteMessageLength(stream); stream.Position = 0; return(stream); }
private static void CheckHeader( Basics.ApiKey apiKey, short apiVersion, int correlationId, string clientId, ReusableMemoryStream stream) { Assert.AreEqual(stream.Length - 4, BigEndianConverter.ReadInt32(stream)); // Size Assert.AreEqual((short)apiKey, BigEndianConverter.ReadInt16(stream)); Assert.AreEqual(apiVersion, BigEndianConverter.ReadInt16(stream)); Assert.AreEqual(correlationId, BigEndianConverter.ReadInt32(stream)); Assert.AreEqual(clientId, Basics.DeserializeString(stream)); }