Ejemplo n.º 1
0
 /// <summary>
 /// Writes message data using given writer
 /// </summary>
 /// <param name="writer">
 ///     The writer.
 /// </param>
 /// <param name="getBuffer"></param>
 public void WriteTo(KafkaBinaryWriter writer)
 {
     Guard.NotNull(writer, "writer");
     writer.Seek(MagicOffset, SeekOrigin.Current);
     var beginningPosition = writer.CurrentPos;
     writer.Write(this.Magic);
     writer.Write(this.Attributes);
     writer.Write(this.KeyLength);
     if (KeyLength != -1)
     {
         writer.Write(this.Key);
     }
     writer.Write(Payload.Length);
     writer.Write(this.Payload);
     var crc = ComputeChecksum(writer.Buffer, (int)beginningPosition, Size - MagicOffset);
     writer.Seek(-Size, SeekOrigin.Current);
     writer.Write(crc);
     writer.Seek(Size - DefaultCrcLength, SeekOrigin.Current);
 }