public virtual void CreateChildBuffer(bool storeLengthInLink) { MarshallingBuffer childBuffer = _currentBuffer.AddChild(false, storeLengthInLink); _currentBuffer.ReserveChildLinkSpace(storeLengthInLink); _currentBuffer = childBuffer; }
public virtual void TestLinkOffset() { var linkOffset = 7; var buffer = new MarshallingBuffer(); buffer.WriteInt(Data1); buffer.WriteByte(Data2); var child = buffer.AddChild(); child.WriteInt(Data3); child.WriteInt(Data4); var grandChild = child.AddChild(); grandChild.WriteInt(Data5); buffer.MergeChildren(null, 0, linkOffset); var content = InspectContent(buffer); var extendedBuffer = new ByteArrayBuffer(content.Length() + linkOffset ); content.CopyTo(extendedBuffer, 0, linkOffset, content.Length()); extendedBuffer.Seek(linkOffset); Assert.AreEqual(Data1, extendedBuffer.ReadInt()); Assert.AreEqual(Data2, extendedBuffer.ReadByte()); var address = extendedBuffer.ReadInt(); extendedBuffer.Seek(address); Assert.AreEqual(Data3, extendedBuffer.ReadInt()); Assert.AreEqual(Data4, extendedBuffer.ReadInt()); address = extendedBuffer.ReadInt(); extendedBuffer.Seek(address); Assert.AreEqual(Data5, extendedBuffer.ReadInt()); }
public virtual void TestGrandChildren() { var buffer = new MarshallingBuffer(); buffer.WriteInt(Data1); buffer.WriteByte(Data2); var child = buffer.AddChild(); child.WriteInt(Data3); child.WriteInt(Data4); var grandChild = child.AddChild(); grandChild.WriteInt(Data5); buffer.MergeChildren(null, 0, 0); var content = InspectContent(buffer); Assert.AreEqual(Data1, content.ReadInt()); Assert.AreEqual(Data2, content.ReadByte()); var address = content.ReadInt(); content.Seek(address); Assert.AreEqual(Data3, content.ReadInt()); Assert.AreEqual(Data4, content.ReadInt()); address = content.ReadInt(); content.Seek(address); Assert.AreEqual(Data5, content.ReadInt()); }
private ByteArrayBuffer InspectContent(MarshallingBuffer buffer) { var bufferDelegate = buffer.TestDelegate(); bufferDelegate.Seek(0); return(bufferDelegate); }
public virtual int RequiredLength(MarshallingBuffer buffer, bool align) { if (!align) { return(buffer.Length()); } return(Container().BlockConverter().BlockAlignedBytes(buffer.Length())); }
public virtual void TestWrite() { var buffer = new MarshallingBuffer(); buffer.WriteInt(Data1); buffer.WriteByte(Data2); var content = InspectContent(buffer); Assert.AreEqual(Data1, content.ReadInt()); Assert.AreEqual(Data2, content.ReadByte()); }
public MarshallingContext(Db4objects.Db4o.Internal.Transaction trans, ObjectReference @ref, IUpdateDepth updateDepth, bool isNew) { // YapClass ID // Marshaller Version // number of fields _transaction = trans; _reference = @ref; _nullBitMap = new BitMap4(AspectCount()); _updateDepth = ClassMetadata().AdjustUpdateDepth(trans, updateDepth); _isNew = isNew; _writeBuffer = new MarshallingBuffer(); _currentBuffer = _writeBuffer; }
public MarshallingContext(Transaction trans, ObjectReference @ref, IUpdateDepth updateDepth, bool isNew) { // YapClass ID // Marshaller Version // number of fields _transaction = trans; _reference = @ref; _nullBitMap = new BitMap4(AspectCount()); _updateDepth = ClassMetadata().AdjustUpdateDepth(trans, updateDepth); _isNew = isNew; _writeBuffer = new MarshallingBuffer(); _currentBuffer = _writeBuffer; }
public virtual void TestTransferLastWrite() { var buffer = new MarshallingBuffer(); buffer.WriteInt(Data1); var lastOffset = Offset(buffer); buffer.WriteByte(Data2); var other = new MarshallingBuffer(); buffer.TransferLastWriteTo(other, true); Assert.AreEqual(lastOffset, Offset(buffer)); var content = InspectContent(other); Assert.AreEqual(Data2, content.ReadByte()); }
public virtual void TestChildren() { MarshallingBuffer buffer = new MarshallingBuffer(); buffer.WriteInt(Data1); buffer.WriteByte(Data2); MarshallingBuffer child = buffer.AddChild(); child.WriteInt(Data3); child.WriteInt(Data4); buffer.MergeChildren(null, 0, 0); ByteArrayBuffer content = InspectContent(buffer); Assert.AreEqual(Data1, content.ReadInt()); Assert.AreEqual(Data2, content.ReadByte()); int address = content.ReadInt(); content.Seek(address); Assert.AreEqual(Data3, content.ReadInt()); Assert.AreEqual(Data4, content.ReadInt()); }
public virtual void CreateChildBuffer(bool storeLengthInLink) { var childBuffer = _currentBuffer.AddChild(false, storeLengthInLink); _currentBuffer.ReserveChildLinkSpace(storeLengthInLink); _currentBuffer = childBuffer; }
public MarshallingContextState(MarshallingBuffer buffer) { _buffer = buffer; }
public virtual void BeginSlot() { _currentBuffer = _writeBuffer; }
public virtual void RestoreState(MarshallingContextState state) { _currentBuffer = state._buffer; }
private int Offset(MarshallingBuffer buffer) { return(buffer.TestDelegate().Offset()); }
public virtual int RequiredLength(MarshallingBuffer buffer, bool align) { if (!align) { return buffer.Length(); } return Container().BlockConverter().BlockAlignedBytes(buffer.Length()); }