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);
 }
Пример #2
0
 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));
 }