public virtual void TestCopy() { ByteArrayBuffer from = new ByteArrayBuffer(Readerlength); for (int i = 0; i < Readerlength; i++) { from.WriteByte((byte)i); } ByteArrayBuffer to = new ByteArrayBuffer(Readerlength - 1); from.CopyTo(to, 1, 2, 10); Assert.AreEqual(0, to.ReadByte()); Assert.AreEqual(0, to.ReadByte()); for (int i = 1; i <= 10; i++) { Assert.AreEqual((byte)i, to.ReadByte()); } for (int i = 12; i < Readerlength - 1; i++) { Assert.AreEqual(0, to.ReadByte()); } }
public virtual void WriteByte(byte b) { PrepareWrite(); _delegate.WriteByte(b); }
public override void Write(object a_object, ByteArrayBuffer a_bytes) { char char_ = ((char)a_object); a_bytes.WriteByte((byte)(char_ & unchecked((int)(0xff)))); a_bytes.WriteByte((byte)(char_ >> 8)); }
public void WriteByte(byte value) { _source.IncrementOffset(1); _target.WriteByte(value); }
public virtual ByteArrayBuffer ToWriteBuffer(Pointer4 pointer) { ByteArrayBuffer buffer = new ByteArrayBuffer(pointer.Length()); _writeBuffer.MergeChildren(this, pointer.Address(), WriteBufferOffset()); WriteObjectClassID(buffer, ClassMetadata().GetID()); buffer.WriteByte(HandlerRegistry.HandlerVersion); buffer.WriteInt(AspectCount()); buffer.WriteBitMap(_nullBitMap); _writeBuffer.TransferContentTo(buffer); return buffer; }
public override void WriteThis(Transaction trans, ByteArrayBuffer buffer) { int count = 0; int startOffset = buffer._offset; IContext context = trans.Context(); buffer.IncrementOffset(CountLeafAnd3LinkLength); if (_isLeaf) { for (int i = 0; i < _count; i++) { object obj = InternalKey(trans, i); if (obj != No4.Instance) { count++; KeyHandler().WriteIndexEntry(context, buffer, obj); } } } else { for (int i = 0; i < _count; i++) { if (ChildCanSupplyFirstKey(i)) { Db4objects.Db4o.Internal.Btree.BTreeNode child = (Db4objects.Db4o.Internal.Btree.BTreeNode )_children[i]; object childKey = child.FirstKey(trans); if (childKey != No4.Instance) { count++; KeyHandler().WriteIndexEntry(context, buffer, childKey); buffer.WriteIDOf(trans, child); } } else { count++; KeyHandler().WriteIndexEntry(context, buffer, Key(i)); buffer.WriteIDOf(trans, _children[i]); } } } int endOffset = buffer._offset; buffer._offset = startOffset; buffer.WriteInt(count); buffer.WriteByte(_isLeaf ? (byte)1 : (byte)0); buffer.WriteInt(_parentID); buffer.WriteInt(_previousID); buffer.WriteInt(_nextID); buffer._offset = endOffset; }
public override void WriteThis(Transaction trans, ByteArrayBuffer a_writer) { a_writer.WriteByte(BtreeVersion); a_writer.WriteInt(_size); a_writer.WriteInt(NodeSize()); a_writer.WriteIDOf(trans, _root); }
public override void Write(object a_object, ByteArrayBuffer a_bytes) { a_bytes.WriteByte(((byte)a_object)); }
public override void Write(Transaction trans, ClassMetadata clazz, ClassAspect aspect , ByteArrayBuffer writer) { writer.WriteByte(aspect.AspectType()._id); base.Write(trans, clazz, aspect, writer); }
public override void Write(object obj, ByteArrayBuffer buffer) { buffer.WriteByte(GetEncodedByteValue(obj)); }
public override void Write(Transaction trans, ClassMetadata clazz, ClassAspect aspect , ByteArrayBuffer writer) { writer.WriteShortString(trans, aspect.GetName()); if (!(aspect is FieldMetadata)) { return; } FieldMetadata field = (FieldMetadata)aspect; field.Alive(); if (field.IsVirtual()) { return; } ITypeHandler4 handler = field.GetHandler(); if (handler is StandardReferenceTypeHandler) { // TODO: ensure there is a test case, to make this happen if (((StandardReferenceTypeHandler)handler).ClassMetadata().GetID() == 0) { trans.Container().NeedsUpdate(clazz); } } writer.WriteInt(field.FieldTypeID()); BitMap4 bitmap = new BitMap4(3); bitmap.Set(0, field.IsPrimitive()); bitmap.Set(1, Handlers4.HandlesArray(handler)); bitmap.Set(2, Handlers4.HandlesMultidimensionalArray(handler)); // keep the order writer.WriteByte(bitmap.GetByte(0)); }
protected virtual void WriteBuffer(ByteArrayBuffer buffer, bool shuttingDown) { SystemData systemData = SystemData(); WriteSlot(buffer, systemData.IdSystemSlot(), false); WriteSlot(buffer, systemData.InMemoryFreespaceSlot(), !shuttingDown); buffer.WriteInt(systemData.BTreeFreespaceId()); buffer.WriteInt(systemData.ConverterVersion()); buffer.WriteInt(systemData.UuidIndexId()); Db4oDatabase identity = systemData.Identity(); buffer.WriteInt(identity == null ? 0 : identity.GetID(_container.SystemTransaction ())); buffer.WriteLong(systemData.LastTimeStampID()); buffer.WriteByte(systemData.FreespaceSystem()); }