예제 #1
0
        private object ReadIndexEntryForRebuild(StatefulBuffer writer, ObjectHeader oh)
        {
            ClassMetadata classMetadata = oh.ClassMetadata();

            if (classMetadata == null)
            {
                return(DefaultValueForFieldType());
            }
            ObjectIdContextImpl context = new ObjectIdContextImpl(writer.Transaction(), writer
                                                                  , oh, writer.GetID());

            if (!classMetadata.SeekToField(context, this))
            {
                return(DefaultValueForFieldType());
            }
            try
            {
                return(ReadIndexEntry(context));
            }
            catch (CorruptionException exc)
            {
                throw new FieldIndexException(exc, this);
            }
        }
예제 #2
0
 public static object Unmarshall(ObjectContainerBase serviceProvider, StatefulBuffer
                                 buffer)
 {
     return(Unmarshall(serviceProvider, buffer._buffer, buffer.GetID()));
 }
예제 #3
0
		public static object Unmarshall(ObjectContainerBase serviceProvider, StatefulBuffer
			 buffer)
		{
			return Unmarshall(serviceProvider, buffer._buffer, buffer.GetID());
		}
예제 #4
0
 internal void Delete(StatefulBuffer buffer, object obj)
 {
     RemoveFromIndex(buffer.Transaction(), buffer.GetID());
     CascadeDeletion(buffer, obj);
 }
예제 #5
0
 public void AddFieldIndices(StatefulBuffer buffer)
 {
     if (!StandardReferenceTypeHandlerIsUsed())
     {
         return;
     }
     if (HasClassIndex() || HasVirtualAttributes())
     {
         var oh = new ObjectHeader(this, buffer);
         var context = new ObjectIdContextImpl(buffer.Transaction(), buffer
             , oh, buffer.GetID());
         Handlers4.FieldAwareTypeHandler(CorrectHandlerVersion(context)).AddFieldIndices(context
             );
     }
 }
예제 #6
0
 protected void AddIndexEntry(StatefulBuffer a_bytes, object indexEntry)
 {
     AddIndexEntry(a_bytes.Transaction(), a_bytes.GetID(), indexEntry);
 }
예제 #7
0
		protected void AddIndexEntry(StatefulBuffer a_bytes, object indexEntry)
		{
			AddIndexEntry(a_bytes.Transaction(), a_bytes.GetID(), indexEntry);
		}
예제 #8
0
		private object ReadIndexEntryForRebuild(StatefulBuffer writer, ObjectHeader oh)
		{
			ClassMetadata classMetadata = oh.ClassMetadata();
			if (classMetadata == null)
			{
				return DefaultValueForFieldType();
			}
			ObjectIdContextImpl context = new ObjectIdContextImpl(writer.Transaction(), writer
				, oh, writer.GetID());
			if (!classMetadata.SeekToField(context, this))
			{
				return DefaultValueForFieldType();
			}
			try
			{
				return ReadIndexEntry(context);
			}
			catch (CorruptionException exc)
			{
				throw new FieldIndexException(exc, this);
			}
		}