public virtual void Write(Transaction trans, ClassMetadata clazz, ByteArrayBuffer writer) { writer.WriteShortString(trans, clazz.NameToWrite()); int intFormerlyKnownAsMetaClassID = 0; writer.WriteInt(intFormerlyKnownAsMetaClassID); writer.WriteIDOf(trans, clazz._ancestor); WriteIndex(trans, clazz, writer); writer.WriteInt(clazz.DeclaredAspectCount()); clazz.TraverseDeclaredAspects(new _IProcedure4_39(this, trans, clazz, writer)); }
public virtual void Defrag(ClassMetadata classMetadata, LatinStringIO sio, DefragmentContextImpl context, int classIndexID) { ReadName(sio, context.SourceBuffer()); ReadName(sio, context.TargetBuffer()); int metaClassID = 0; context.WriteInt(metaClassID); // ancestor ID context.CopyID(); context.WriteInt((classMetadata.HasClassIndex() ? IndexIDForWriting(classIndexID) : 0)); int aspectCount = context.ReadInt(); if (aspectCount > classMetadata.DeclaredAspectCount()) { throw new InvalidOperationException(); } IntByRef processedAspectCount = new IntByRef(0); classMetadata.TraverseDeclaredAspects(new _IProcedure4_136(this, processedAspectCount , aspectCount, classMetadata, sio, context)); }
public virtual int MarshalledLength(ObjectContainerBase stream, ClassMetadata clazz ) { IntByRef len = new IntByRef(stream.StringIO().ShortLength(clazz.NameToWrite()) + Const4.ObjectLength + (Const4.IntLength * 2) + (Const4.IdLength)); len.value += clazz.Index().OwnLength(); clazz.TraverseDeclaredAspects(new _IProcedure4_108(this, len, stream)); return len.value; }