本文整理汇总了C#中Db4objects.Db4o.Internal.ClassMetadata.Index方法的典型用法代码示例。如果您正苦于以下问题:C# ClassMetadata.Index方法的具体用法?C# ClassMetadata.Index怎么用?C# ClassMetadata.Index使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Db4objects.Db4o.Internal.ClassMetadata
的用法示例。
在下文中一共展示了ClassMetadata.Index方法的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ReadIndex
protected override void ReadIndex(ObjectContainerBase stream, ClassMetadata clazz
, ByteArrayBuffer reader)
{
int indexID = reader.ReadInt();
if (indexID == 0)
{
return;
}
clazz.Index().Read(stream, indexID);
}
示例2: ReadIndex
protected override void ReadIndex(ObjectContainerBase stream, ClassMetadata clazz
, ByteArrayBuffer reader)
{
int indexID = reader.ReadInt();
if (!stream.MaintainsIndices() || !(stream is LocalObjectContainer))
{
return;
}
if (Btree(clazz) != null)
{
return;
}
clazz.Index().Read(stream, ValidIndexId(indexID));
if (IsOldClassIndex(indexID))
{
new ClassIndexesToBTrees_5_5().Convert((LocalObjectContainer)stream, indexID, Btree
(clazz));
stream.SetDirtyInSystemTransaction(clazz);
}
}
示例3: WriteIndex
protected virtual void WriteIndex(Transaction trans, ClassMetadata clazz, ByteArrayBuffer
writer)
{
int indexID = clazz.Index().Write(trans);
writer.WriteInt(IndexIDForWriting(indexID));
}
示例4: MarshalledLength
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;
}
示例5: TraverseAllIndexSlots
public virtual void TraverseAllIndexSlots(ClassMetadata classMetadata, IVisitor4
command)
{
IEnumerator slotIDIter = classMetadata.Index().AllSlotIDs(Sourcedb.Transaction(this
));
while (slotIDIter.MoveNext())
{
command.Visit(slotIDIter.Current);
}
}
示例6: TraverseAll
public virtual void TraverseAll(ClassMetadata classMetadata, IVisitor4 command)
{
if (!classMetadata.HasClassIndex())
{
return;
}
classMetadata.Index().TraverseAll(Sourcedb.Transaction(this), command);
}
示例7: LoadFromClassIndex
public override void LoadFromClassIndex(ClassMetadata clazz)
{
IClassIndexStrategy index = clazz.Index();
if (index is BTreeClassIndexStrategy)
{
BTree btree = ((BTreeClassIndexStrategy)index).Btree();
_ids = new IntArrayList(btree.Size(Transaction()));
}
index.TraverseAll(_transaction, new _IVisitor4_107(this));
}
示例8: Btree
public static BTree Btree(ClassMetadata clazz)
{
IClassIndexStrategy index = clazz.Index();
if (!(index is Db4objects.Db4o.Internal.Classindex.BTreeClassIndexStrategy))
{
throw new InvalidOperationException();
}
return ((Db4objects.Db4o.Internal.Classindex.BTreeClassIndexStrategy)index).Btree
();
}
示例9: ProcessClassIndex
/// <exception cref="Db4objects.Db4o.CorruptionException"></exception>
/// <exception cref="System.IO.IOException"></exception>
private static void ProcessClassIndex(DefragmentServicesImpl context, ClassMetadata
curClass, IPassCommand command)
{
if (curClass.HasClassIndex())
{
BTreeClassIndexStrategy indexStrategy = (BTreeClassIndexStrategy)curClass.Index();
BTree btree = indexStrategy.Btree();
command.ProcessBTree(context, btree);
}
}
示例10: ProcessClassAndFieldIndices
/// <exception cref="Db4objects.Db4o.CorruptionException"></exception>
/// <exception cref="System.IO.IOException"></exception>
private static void ProcessClassAndFieldIndices(DefragmentServicesImpl context, ClassMetadata
curClass, IPassCommand command)
{
int sourceClassIndexID = 0;
int targetClassIndexID = 0;
if (curClass.HasClassIndex())
{
sourceClassIndexID = curClass.Index().Id();
targetClassIndexID = context.MappedID(sourceClassIndexID, -1);
}
command.ProcessClass(context, curClass, curClass.GetID(), targetClassIndexID);
}
示例11: GetIDsForClass
public override long[] GetIDsForClass(Transaction trans, ClassMetadata clazz)
{
IntArrayList ids = new IntArrayList();
clazz.Index().TraverseAll(trans, new _IVisitor4_792(ids));
return ids.AsLong();
}
示例12: CollectClassSlots
private void CollectClassSlots(ClassMetadata clazz)
{
if (!clazz.HasClassIndex())
{
return;
}
BTreeClassIndexStrategy index = (BTreeClassIndexStrategy)clazz.Index();
index.TraverseAll(_db.SystemTransaction(), new _IVisitor4_182(this));
}
示例13: ClassSlotUsage
private FileUsageStatsCollector.InstanceUsage ClassSlotUsage(ClassMetadata clazz)
{
if (!clazz.HasClassIndex())
{
return new FileUsageStatsCollector.InstanceUsage(0, 0);
}
IMiscCollector miscCollector = ((IMiscCollector)MiscCollectors[clazz.GetName()]);
LongByRef slotUsage = new LongByRef();
LongByRef miscUsage = new LongByRef();
BTreeClassIndexStrategy index = (BTreeClassIndexStrategy)clazz.Index();
index.TraverseAll(_db.SystemTransaction(), new _IVisitor4_166(this, slotUsage, miscCollector
, miscUsage));
return new FileUsageStatsCollector.InstanceUsage(slotUsage.value, miscUsage.value
);
}