using System.Collections.Generic; using System.IO; using Bloomberg.Message.Entities; using Bloomberg.Message.Utils; namespace Bloomberg.Message.Reader { public class AttributeReader { public List Read(Stream currentStream) { var dataAttributesList = new List(); ReaderHelper.ValidateMarker(MessageConstants.AttributeStartMarker, ReaderHelper.ReadUInt(currentStream), "AttributeStartMarker"); uint length; while (true) { length = ReaderHelper.ReadUInt(currentStream); // Verify if we've reach the end if (length == MessageConstants.AttributeEndMarker) break; string name = ""; string value = ""; // Name if (length > 0) { name = ReaderHelper.ReadString(currentStream, length); } // Value length = ReaderHelper.ReadUInt(currentStream); if (length > 0) { value = ReaderHelper.ReadString(currentStream, length); } dataAttributesList.Add(new DataAttribute {Name = name, Value = value}); } ReaderHelper.ValidateMarker(MessageConstants.AttributeEndMarker, length, "AttributeEndMarker"); return dataAttributesList; } } }