/// <summary>This readIndexEntry method reads from the parent slot.</summary> /// <remarks>This readIndexEntry method reads from the parent slot.</remarks> /// <exception cref="Db4objects.Db4o.CorruptionException"></exception> /// <exception cref="Db4objects.Db4o.Ext.Db4oIOException"></exception> public virtual object ReadIndexEntryFromObjectSlot(MarshallerFamily mf, StatefulBuffer buffer) { var payLoadOffSet = buffer.ReadInt(); var length = buffer.ReadInt(); if (payLoadOffSet == 0) { return null; } return buffer.ReadPayloadWriter(payLoadOffSet, length); }
private ObjectHeader(ObjectContainerBase container, Db4objects.Db4o.Internal.ClassMetadata classMetadata, IReadWriteBuffer reader) { int classID = reader.ReadInt(); _marshallerFamily = ReadMarshallerFamily(reader, classID); classID = NormalizeID(classID); _classMetadata = (classMetadata != null ? classMetadata : container.ClassMetadataForID (classID)); // This check has been added to cope with defragment in debug mode: SlotDefragment#setIdentity() // will trigger calling this constructor with a source db class metadata and a target db stream, // thus _classMetadata==null. There may be a better solution, since this call is just meant to // skip the object header. _headerAttributes = SlotFormat().ReadHeaderAttributes((ByteArrayBuffer)reader); }
public static MarshallerFamily ForConverterVersion(int n) { MarshallerFamily result = allVersions[0]; for (int i = 1; i < allVersions.Length; i++) { if (allVersions[i]._converterVersion > n) { return(result); } result = allVersions[i]; } return(result); }
private MarshallerFamily ReadMarshallerFamily(IReadWriteBuffer reader, int classID ) { bool marshallerAware = MarshallerAware(classID); _handlerVersion = 0; if (marshallerAware) { _handlerVersion = reader.ReadByte(); } MarshallerFamily marshallerFamily = MarshallerFamily.Version(_handlerVersion); return(marshallerFamily); }
static MarshallerFamily() { allVersions = new MarshallerFamily[HandlerRegistry.HandlerVersion + 1]; allVersions[0] = new MarshallerFamily(0, 0, new ClassMarshaller0(), new FieldMarshaller0 (), new PrimitiveMarshaller0()); // LEGACY => before 5.4 allVersions[1] = new MarshallerFamily(ClassIndexesToBTrees_5_5.Version, 1, new ClassMarshaller1 (), new FieldMarshaller0(), new PrimitiveMarshaller1()); allVersions[2] = new MarshallerFamily(FieldIndexesToBTrees_5_7.Version, 2, new ClassMarshaller2 (), new FieldMarshaller1(), new PrimitiveMarshaller1()); for (var i = 3; i < allVersions.Length; i++) { allVersions[i] = LatestFamily(i); } }
static MarshallerFamily() { allVersions = new MarshallerFamily[HandlerRegistry.HandlerVersion + 1]; allVersions[0] = new MarshallerFamily(0, 0, new ClassMarshaller0(), new FieldMarshaller0 (), new PrimitiveMarshaller0()); // LEGACY => before 5.4 allVersions[1] = new MarshallerFamily(ClassIndexesToBTrees_5_5.Version, 1, new ClassMarshaller1 (), new FieldMarshaller0(), new PrimitiveMarshaller1()); allVersions[2] = new MarshallerFamily(FieldIndexesToBTrees_5_7.Version, 2, new ClassMarshaller2 (), new FieldMarshaller1(), new PrimitiveMarshaller1()); for (int i = 3; i < allVersions.Length; i++) { allVersions[i] = LatestFamily(i); } }
/// <exception cref="Db4objects.Db4o.CorruptionException"></exception> public override object Read(MarshallerFamily mf, StatefulBuffer buffer, bool redirect ) { return mf._primitive.ReadShort(buffer); }
public object ReadIndexEntryFromObjectSlot(MarshallerFamily mf, StatefulBuffer buffer) { return ReadFrom(buffer); }
/// <exception cref="Db4objects.Db4o.CorruptionException"></exception> public object ReadIndexEntryFromObjectSlot(MarshallerFamily mf, StatefulBuffer statefulBuffer ) { return ReadIndexEntry(statefulBuffer.Transaction().Context(), statefulBuffer); }
/// <exception cref="Db4objects.Db4o.CorruptionException"></exception> public override object Read(MarshallerFamily mf, StatefulBuffer writer, bool redirect ) { return mf._primitive.ReadInteger(writer); }
/// <exception cref="Db4objects.Db4o.CorruptionException"></exception> /// <exception cref="Db4objects.Db4o.Ext.Db4oIOException"></exception> public override object ReadIndexEntryFromObjectSlot(MarshallerFamily mf, StatefulBuffer buffer) { return buffer.Container().ReadWriterByAddress(buffer.Transaction(), buffer.ReadInt (), buffer.ReadInt()); }
object IIndexableTypeHandler.ReadIndexEntryFromObjectSlot(MarshallerFamily mf, StatefulBuffer buffer) { return ReadFrom(buffer); }
public object ReadIndexEntryFromObjectSlot(MarshallerFamily mf, StatefulBuffer statefulBuffer) { return new IndexEntry(statefulBuffer.ReadInt(), statefulBuffer.ReadLong()); }
/// <param name="mf"></param> /// <param name="buffer"></param> /// <param name="redirect"></param> /// <exception cref="Db4objects.Db4o.CorruptionException"></exception> public virtual object Read(MarshallerFamily mf, StatefulBuffer buffer, bool redirect ) { return Read1(buffer); }
/// <exception cref="Db4objects.Db4o.CorruptionException"></exception> public object ReadIndexEntryFromObjectSlot(MarshallerFamily mf, StatefulBuffer statefulBuffer ) { return Read(mf, statefulBuffer, true); }