public virtual BitMap4 ReadBitMap(int bitCount) { BitMap4 map = new BitMap4(_buffer, _offset, bitCount); _offset += map.MarshalledLength(); return map; }
public virtual BitMap4 ReadBitMap(int bitCount) { BitMap4 map = new BitMap4(_current._buffer, _current._offset, bitCount); _current.Seek(_current.Offset() + map.MarshalledLength()); return map; }
public void WriteBitMap(BitMap4 nullBitMap) { nullBitMap.WriteTo(_buffer, _offset); _offset += nullBitMap.MarshalledLength(); }
protected override void WriteElements(IWriteContext context, object obj, ArrayInfo info) { var objects = AllElements(Container(context), obj); if (HasNullBitmap(info)) { var nullBitMap = new BitMap4(info.ElementCount()); var nullBitMapBuffer = context.Reserve(nullBitMap.MarshalledLength()); var currentElement = 0; while (objects.MoveNext()) { var current = objects.Current; if (current == null) { nullBitMap.SetTrue(currentElement); } else { context.WriteObject(DelegateTypeHandler(), current); } currentElement++; } nullBitMapBuffer.WriteBytes(nullBitMap.Bytes()); } else { while (objects.MoveNext()) { context.WriteObject(DelegateTypeHandler(), objects.Current); } } }