/// <summary> /// Decode a byte[] that represents a collection of messages. /// </summary> /// <param name="messageSet">The byte[] encode as a message set from kafka.</param> /// <returns>Enumerable representing stream of messages decoded from byte[]</returns> public static IEnumerable<Message> DecodeMessageSet(byte[] messageSet) { var stream = new ReadByteStream(messageSet); while (stream.HasData) { var offset = stream.ReadLong(); foreach (var message in DecodeMessage(offset, stream.ReadIntPrefixedBytes())) { yield return message; } } }
/// <summary> /// Decode a byte[] that represents a collection of messages. /// </summary> /// <param name="messageSet">The byte[] encode as a message set from kafka.</param> /// <returns>Enumerable representing stream of messages decoded from byte[]</returns> public static IEnumerable<Message> DecodeMessageSet(byte[] messageSet) { var stream = new ReadByteStream(messageSet); while (stream.HasData) { var offset = stream.ReadLong(); var size = stream.ReadInt(); var payload = stream.ReadBytesFromStream(size); if (payload.Length < size) throw new InsufficientDataException(payload.Length, size); foreach (var message in DecodeMessage(offset, payload)) { yield return message; } } }