internal byte[] GetInternalBytes()
{
List<byte> messagePack = new List<byte>();
foreach (Message message in Messages)
{
byte[] messageBytes = message.GetBytes();
messagePack.AddRange(BitWorks.GetBytesReversed(messageBytes.Length));
messagePack.AddRange(messageBytes);
}
byte[] topicLengthBytes = BitWorks.GetBytesReversed(Convert.ToInt16(Topic.Length));
byte[] topicBytes = Encoding.UTF8.GetBytes(Topic);
byte[] partitionBytes = BitWorks.GetBytesReversed(Partition);
byte[] messagePackLengthBytes = BitWorks.GetBytesReversed(messagePack.Count);
byte[] messagePackBytes = messagePack.ToArray();
List<byte> encodedMessageSet = new List<byte>();
encodedMessageSet.AddRange(topicLengthBytes);
encodedMessageSet.AddRange(topicBytes);
encodedMessageSet.AddRange(partitionBytes);
encodedMessageSet.AddRange(messagePackLengthBytes);
encodedMessageSet.AddRange(messagePackBytes);
return encodedMessageSet.ToArray();
}