protected virtual void EnsureInitialized <T>(ref T obj, SectionFlag section) where T : class, new() { if (AmqpMessage.EnsureInitialized(ref obj)) { this.sectionFlags |= section; } }
static void ReadDataSection(AmqpMessageReader reader, AmqpMessage message) { FormatCode formatCode = reader.ReadFormatCode(); Fx.Assert(formatCode == FormatCode.Binary8 || formatCode == FormatCode.Binary32, "Invalid binary format code"); bool smallEncoding = formatCode == FormatCode.Binary8; int count = reader.ReadInt(smallEncoding); ArraySegment <byte> buffer = reader.ReadBytes(count); AmqpMessage.EnsureInitialized <List <Data> >(ref reader.dataList); reader.dataList.Add(new Data() { Value = buffer }); reader.AddBodyBuffer(buffer); }
static void ReadAmqpSequenceSection(AmqpMessageReader reader, AmqpMessage message) { AmqpMessage.EnsureInitialized <List <AmqpSequence> >(ref reader.sequenceList); reader.sequenceList.Add(ReadListSection <AmqpSequence>(reader, true)); }
void AddBodyBuffer(ArraySegment <byte> buffer) { AmqpMessage.EnsureInitialized <List <ArraySegment <byte> > >(ref this.bodyBuffers); this.bodyBuffers.Add(buffer); }