Exemple #1
0
 internal virtual void UseField(QField a_field)
 {
     Read();
     if (_bytes == null)
     {
         _fieldMetadata = null;
         return;
     }
     ReadClassMetadata();
     _member = null;
     if (a_field == null)
     {
         _fieldMetadata = null;
         return;
     }
     if (_classMetadata == null)
     {
         _fieldMetadata = null;
         return;
     }
     _fieldMetadata = FieldMetadataFrom(a_field, _classMetadata);
     if (_fieldMetadata == null)
     {
         FieldNotFound();
         return;
     }
     HandlerVersion handlerVersion = _classMetadata.SeekToField(Transaction(), _bytes,
         _fieldMetadata);
     if (handlerVersion == HandlerVersion.Invalid)
     {
         FieldNotFound();
         return;
     }
     _handlerVersion = handlerVersion._number;
 }
Exemple #2
0
        private object ReadFieldValue(int id, FieldMetadata field)
        {
            ByteArrayBuffer buffer         = BufferFor(id);
            HandlerVersion  handlerVersion = field.ContainingClass().SeekToField(_transaction,
                                                                                 buffer, field);

            if (handlerVersion == HandlerVersion.Invalid)
            {
                return(null);
            }
            QueryingReadContext context = new QueryingReadContext(_transaction, handlerVersion
                                                                  ._number, buffer, id);

            return(field.Read(context));
        }