/// <exception cref="Db4objects.Db4o.CorruptionException"></exception> /// <exception cref="Db4objects.Db4o.Ext.Db4oIOException"></exception> public object ReadIndexEntry(IObjectIdContext context) { IIndexableTypeHandler indexableTypeHandler = (IIndexableTypeHandler)HandlerRegistry .CorrectHandlerVersion(context, GetHandler()); return(indexableTypeHandler.ReadIndexEntry(context)); }
protected virtual ITypeHandler4 ReadTypeHandler(IInternalReadContext context, int payloadOffset) { context.Seek(payloadOffset); ITypeHandler4 typeHandler = Container().TypeHandlerForClassMetadataID(context.ReadInt ()); return(HandlerRegistry.CorrectHandlerVersion(context, typeHandler)); }
/// <exception cref="Db4objects.Db4o.Internal.FieldIndexException"></exception> public sealed override void CollectIDs(CollectIdContext context) { if (!Alive()) { IncrementOffset(context.Buffer(), context); return; } ITypeHandler4 handler = HandlerRegistry.CorrectHandlerVersion(context, GetHandler ()); Handlers4.CollectIdsInternal(context, handler, LinkLength(context), true); }
public static ITypeHandler4 ArrayElementHandler(ITypeHandler4 handler, QueryingReadContext queryingReadContext) { if (!(handler is ICascadingTypeHandler)) { return(null); } var cascadingHandler = (ICascadingTypeHandler)HandlerRegistry.CorrectHandlerVersion (queryingReadContext, handler); return(HandlerRegistry.CorrectHandlerVersion(queryingReadContext, cascadingHandler .ReadCandidateHandler(queryingReadContext))); }
public override void DefragAspect(IDefragmentContext context) { if (!CanDefragment()) { throw new InvalidOperationException("Field '" + ToString() + "' cannot be defragmented at this time." ); } ITypeHandler4 correctTypeHandlerVersion = HandlerRegistry.CorrectHandlerVersion(context , GetHandler(), _fieldType); context.SlotFormat().DoWithSlotIndirection(context, correctTypeHandlerVersion, new _IClosure4_1020(context, correctTypeHandlerVersion)); }
protected virtual ITypeHandler4 CorrectTypeHandlerVersionFor(IDefragmentContext context , int classMetadataId) { ITypeHandler4 typeHandler = context.TypeHandlerForId(classMetadataId); if (null == typeHandler) { return(null); } ClassMetadata classMetadata = Container(context).ClassMetadataForID(classMetadataId ); return(HandlerRegistry.CorrectHandlerVersion(context, typeHandler, classMetadata)); }
public void Defragment(ITypeHandler4 handler) { ITypeHandler4 typeHandler = HandlerRegistry.CorrectHandlerVersion(this, handler); if (Handlers4.UseDedicatedSlot(this, typeHandler)) { if (Handlers4.HasClassIndex(typeHandler)) { CopyID(); } else { CopyUnindexedID(); } return; } typeHandler.Defragment(this); }
public virtual ITypeHandler4 CorrectHandlerVersion(ITypeHandler4 typeHandler) { return(handlerRegistry.CorrectHandlerVersion(typeHandler, version)); }
private int CalculateLinkLength(IHandlerVersionContext context) { return(Handlers4.CalculateLinkLength(HandlerRegistry.CorrectHandlerVersion(context , GetHandler()))); }