Example #1
0
 internal static void SkipHeader(AbstractBufferedReader reader)
 {
     reader.SkipBlock(DiskChunkCache.MagicStartOfFile.Length + 1); // magic + type of file
     reader.SkipVInt64();                                          // generation
     reader.SkipVUInt32();                                         // keySize
     reader.SkipVUInt64();                                         // keyValueCount
 }
Example #2
0
 internal ServerBindInf(AbstractBufferedReader reader)
 {
     BindingId = reader.ReadVUInt32();
     ServiceId = reader.ReadVUInt32();
     MethodId  = reader.ReadVUInt32();
     OneWay    = reader.ReadBool();
 }
Example #3
0
 public DBReaderWithFreeInfoCtx(IInternalObjectDBTransaction transaction, AbstractBufferedReader reader,
                                IList <ulong> freeDictionaries, IList <ulong> freeOids)
     : base(transaction, reader)
 {
     _freeDictionaries = freeDictionaries;
     _freeOids         = freeOids;
 }
Example #4
0
        ITypeDescriptor NestedDescriptorReader(AbstractBufferedReader reader)
        {
            var typeId = reader.ReadVInt32();

            if (typeId < 0 && -typeId - 1 < _id2InfoNew.Count)
            {
                var infoForType = _id2InfoNew[-typeId - 1];
                if (infoForType != null)
                {
                    return(infoForType.Descriptor);
                }
            }
            else if (typeId > 0)
            {
                if (typeId >= _id2Info.Count)
                {
                    throw new BTDBException("Metadata corrupted");
                }
                var infoForType = _id2Info[typeId];
                if (infoForType == null)
                {
                    throw new BTDBException("Metadata corrupted");
                }
                return(infoForType.Descriptor);
            }
            return(new PlaceHolderDescriptor(typeId));
        }
Example #5
0
        internal static void SkipHeader(AbstractBufferedReader reader)
        {
            FileCollectionWithFileInfos.SkipHeader(reader);
            var type            = (KVFileType)reader.ReadUInt8();
            var withCommitUlong = type == KVFileType.KeyIndexWithCommitUlong || type == KVFileType.ModernKeyIndex || type == KVFileType.ModernKeyIndexWithUlongs;

            reader.SkipVInt64();  // generation
            reader.SkipVUInt32(); // trLogFileId
            reader.SkipVUInt32(); // trLogOffset
            reader.SkipVUInt64(); // keyValueCount
            if (withCommitUlong)
            {
                reader.SkipVUInt64();                  // commitUlong
            }
            if (type == KVFileType.ModernKeyIndex || type == KVFileType.ModernKeyIndexWithUlongs)
            {
                reader.SkipUInt8();
            }
            if (type == KVFileType.ModernKeyIndexWithUlongs)
            {
                var ulongCount = reader.ReadVUInt32();
                while (ulongCount-- > 0)
                {
                    reader.SkipVUInt64();
                }
            }
        }
Example #6
0
        void IterateInlineDict(AbstractBufferedReader reader, IFieldHandler keyHandler, IFieldHandler valueHandler, bool skipping)
        {
            var skip  = skipping || _visitor != null && !_visitor.StartDictionary();
            var count = reader.ReadVUInt32();

            while (count-- > 0)
            {
                var skipKey = skip || _visitor != null && !_visitor.StartDictKey();
                IterateHandler(reader, keyHandler, skipKey, null);
                if (!skipKey)
                {
                    _visitor?.EndDictKey();
                }
                var skipValue = skip || _visitor != null && !_visitor.StartDictValue();
                IterateHandler(reader, valueHandler, skipValue, null);
                if (!skipValue)
                {
                    _visitor?.EndDictValue();
                }
            }
            if (!skip)
            {
                _visitor?.EndDictionary();
            }
        }
Example #7
0
        public ParameterInf(AbstractBufferedReader reader, IFieldHandlerFactory fieldHandlerFactory)
        {
            _name = reader.ReadString();
            var handlerName = reader.ReadString();

            _fieldHandler = fieldHandlerFactory.CreateFromName(handlerName, reader.ReadByteArray(), FieldHandlerOptions.None);
        }
Example #8
0
 public ServiceReaderCtx(IServiceInternalClient serviceClient, AbstractBufferedReader reader)
 {
     _serviceServer = null;
     _serviceClient = serviceClient;
     _reader        = reader;
     _lastIdOfObj   = 0;
 }
Example #9
0
 public HashKeyIndex(AbstractBufferedReader reader, Guid?guid)
 {
     _guid       = guid;
     _subId      = reader.ReadVInt64();
     _generation = reader.ReadVInt64();
     _keyLen     = reader.ReadVUInt32();
 }
Example #10
0
 internal static void SkipHeader(AbstractBufferedReader reader)
 {
     FileCollectionWithFileInfos.SkipHeader(reader);
     reader.SkipUInt8();   // type of file
     reader.SkipVInt64();  // subId
     reader.SkipVInt64();  // generation
     reader.SkipVUInt32(); // keyLen
 }
Example #11
0
        internal static UnresolvedTableFieldInfo Load(AbstractBufferedReader reader,
                                                      string tableName, FieldHandlerOptions handlerOptions)
        {
            var name          = reader.ReadString();
            var handlerName   = reader.ReadString();
            var configuration = reader.ReadByteArray();

            return(new UnresolvedTableFieldInfo(name, handlerName, configuration, tableName, handlerOptions));
        }
Example #12
0
 public FileKeyIndex(AbstractBufferedReader reader, Guid?guid, bool withCommitUlong, bool modern)
 {
     _guid            = guid;
     _generation      = reader.ReadVInt64();
     _trLogFileId     = reader.ReadVUInt32();
     _trLogOffset     = reader.ReadVUInt32();
     _keyValueCount   = (long)reader.ReadVUInt64();
     _commitUlong     = withCommitUlong ? reader.ReadVUInt64() : 0;
     _compressionType = modern ? (KeyIndexCompression)reader.ReadUInt8() : KeyIndexCompression.Old;
 }
Example #13
0
        public object Load(uint typeId, AbstractBufferedReader reader, ITypeBinaryDeserializerContext context)
        {
            var infoForType = _id2DescriptorMap[(int)typeId];

            if (infoForType.Loader == null)
            {
                infoForType.Loader = _typeSerializers.GetLoader(infoForType.Descriptor);
            }
            return(infoForType.Loader(reader, context, this, infoForType.Descriptor));
        }
Example #14
0
        // ReSharper disable MemberCanBePrivate.Global
        public static void SkipImpl(AbstractBufferedReader reader)
        // ReSharper restore MemberCanBePrivate.Global
        {
            var items = reader.ReadVUInt32();

            while (items-- > 0)
            {
                reader.SkipVUInt64();
            }
        }
Example #15
0
        internal static void SkipHeader(AbstractBufferedReader reader)
        {
            var magic    = reader.ReadByteArrayRaw(MagicStartOfFile.Length);
            var withGuid = BitArrayManipulation.CompareByteArray(magic, magic.Length,
                                                                 MagicStartOfFileWithGuid, MagicStartOfFileWithGuid.Length) == 0;

            if (withGuid)
            {
                reader.SkipGuid();
            }
        }
Example #16
0
        internal static TableVersionInfo Load(AbstractBufferedReader reader, IFieldHandlerFactory fieldHandlerFactory, string tableName)
        {
            var fieldCount = reader.ReadVUInt32();
            var fieldInfos = new TableFieldInfo[fieldCount];

            for (int i = 0; i < fieldCount; i++)
            {
                fieldInfos[i] = TableFieldInfo.Load(reader, fieldHandlerFactory, tableName);
            }
            return(new TableVersionInfo(fieldInfos));
        }
Example #17
0
        public ObjectTypeDescriptor(ITypeDescriptorCallbacks typeSerializers, AbstractBufferedReader reader, Func <AbstractBufferedReader, ITypeDescriptor> nestedDescriptorReader)
        {
            _typeSerializers = typeSerializers;
            Sealed           = false;
            _name            = reader.ReadString();
            var fieldCount = reader.ReadVUInt32();

            while (fieldCount-- > 0)
            {
                _fields.Add(new KeyValuePair <string, ITypeDescriptor>(reader.ReadString(), nestedDescriptorReader(reader)));
            }
        }
Example #18
0
        internal static TableFieldInfo Load(AbstractBufferedReader reader, IFieldHandlerFactory fieldHandlerFactory, string tableName)
        {
            var name          = reader.ReadString();
            var handlerName   = reader.ReadString();
            var configuration = reader.ReadByteArray();
            var fieldHandler  = fieldHandlerFactory.CreateFromName(tableName, name, handlerName, configuration);

            if (fieldHandler == null)
            {
                throw new BTDBException(string.Format("FieldHandlerFactory did not created handler {0} in {1}.{2}", handlerName, tableName, name));
            }
            return(new TableFieldInfo(name, fieldHandler));
        }
Example #19
0
        public object LoadObject(AbstractBufferedReader reader)
        {
            var typeId = reader.ReadVUInt32();

            if (typeId == 0)
            {
                return(null);
            }
            if (typeId == 1)
            {
                throw new InvalidDataException("Backreference cannot be first object");
            }
            return(Load(typeId, reader, null));
        }
Example #20
0
        ITypeDescriptor NestedDescriptorReader(AbstractBufferedReader reader)
        {
            var typeId = reader.ReadVUInt32();

            if (typeId < _id2DescriptorMap.Count)
            {
                var infoForType = _id2DescriptorMap[(int)typeId];
                if (infoForType != null)
                {
                    return(infoForType.Descriptor);
                }
            }
            return(new PlaceHolderDescriptor(typeId));
        }
Example #21
0
        public static RelationVersionInfo Load(AbstractBufferedReader reader, IFieldHandlerFactory fieldHandlerFactory, string relationName)
        {
            var pkCount     = reader.ReadVUInt32();
            var primaryKeys = new List <TableFieldInfo>((int)pkCount);

            for (var i = 0u; i < pkCount; i++)
            {
                primaryKeys.Add(TableFieldInfo.Load(reader, fieldHandlerFactory, relationName, FieldHandlerOptions.Orderable));
            }
            var skFieldCount       = reader.ReadVUInt32();
            var secondaryKeyFields = new TableFieldInfo[skFieldCount];

            for (var i = 0; i < skFieldCount; i++)
            {
                secondaryKeyFields[i] = TableFieldInfo.Load(reader, fieldHandlerFactory, relationName,
                                                            FieldHandlerOptions.Orderable);
            }
            var skCount            = reader.ReadVUInt32();
            var secondaryKeys      = new Dictionary <uint, SecondaryKeyInfo>((int)skCount);
            var secondaryKeysNames = new Dictionary <string, uint>((int)skCount);

            for (var i = 0; i < skCount; i++)
            {
                var skIndex = reader.ReadVUInt32();
                var info    = new SecondaryKeyInfo();
                info.Index = reader.ReadVUInt32();
                info.Name  = reader.ReadString();
                var cnt = reader.ReadVUInt32();
                info.Fields = new List <FieldId>((int)cnt);
                for (var j = 0; j < cnt; j++)
                {
                    var fromPrimary = reader.ReadBool();
                    var index       = reader.ReadVUInt32();
                    info.Fields.Add(new FieldId(fromPrimary, index));
                }
                secondaryKeys.Add(skIndex, info);
                secondaryKeysNames.Add(info.Name, skIndex);
            }

            var fieldCount = reader.ReadVUInt32();
            var fieldInfos = new TableFieldInfo[fieldCount];

            for (int i = 0; i < fieldCount; i++)
            {
                fieldInfos[i] = TableFieldInfo.Load(reader, fieldHandlerFactory, relationName, FieldHandlerOptions.None);
            }

            return(new RelationVersionInfo(primaryKeys, secondaryKeys, secondaryKeysNames, fieldInfos));
        }
Example #22
0
        internal static TableFieldInfo Load(AbstractBufferedReader reader, IFieldHandlerFactory fieldHandlerFactory,
                                            string tableName, FieldHandlerOptions handlerOptions)
        {
            var name          = reader.ReadString();
            var handlerName   = reader.ReadString();
            var configuration = reader.ReadByteArray();
            var fieldHandler  = fieldHandlerFactory.CreateFromName(handlerName !, configuration, handlerOptions);

            if (fieldHandler == null)
            {
                throw new BTDBException(
                          $"FieldHandlerFactory did not created handler {handlerName} in {tableName}.{name}");
            }
            return(new TableFieldInfo(name !, fieldHandler));
        }
Example #23
0
        // ReSharper disable UnusedMember.Global
        public static IList <T> LoaderImpl <T>(AbstractBufferedReader reader, IDBObject owner) where T : class
        // ReSharper restore UnusedMember.Global
        {
            var count = reader.ReadVUInt32();

            if (count == 0)
            {
                return(null);
            }
            var oids = new List <ulong>((int)count);

            while (count-- > 0)
            {
                oids.Add(reader.ReadVUInt64());
            }
            return(new ListOfDBObject <T>(owner, oids));
        }
Example #24
0
        public MethodInf(AbstractBufferedReader reader, IFieldHandlerFactory fieldHandlerFactory)
        {
            _name      = reader.ReadString();
            _ifaceName = reader.ReadString();
            var resultFieldHandlerName = reader.ReadString();

            if (resultFieldHandlerName != null)
            {
                _resultFieldHandler = fieldHandlerFactory.CreateFromName(resultFieldHandlerName, reader.ReadByteArray(), FieldHandlerOptions.None);
            }
            var parameterCount = reader.ReadVUInt32();

            _parameters = new ParameterInf[parameterCount];
            for (int i = 0; i < _parameters.Length; i++)
            {
                _parameters[i] = new ParameterInf(reader, fieldHandlerFactory);
            }
        }
Example #25
0
        public EnumTypeDescriptor(ITypeDescriptorCallbacks typeSerializers, AbstractBufferedReader reader)
        {
            _typeSerializers = typeSerializers;
            _name            = reader.ReadString();
            var header = reader.ReadVUInt32();

            _signed = (header & 1) != 0;
            _flags  = (header & 2) != 0;
            var count = header >> 2;

            _pairs = new List <KeyValuePair <string, ulong> >((int)count);
            for (int i = 0; i < count; i++)
            {
                _pairs.Add(_signed
                               ? new KeyValuePair <string, ulong>(reader.ReadString(), (ulong)reader.ReadVInt64())
                               : new KeyValuePair <string, ulong>(reader.ReadString(), reader.ReadVUInt64()));
            }
        }
Example #26
0
        void IterateInlineList(AbstractBufferedReader reader, IFieldHandler itemHandler, bool skipping)
        {
            var skip  = skipping || _visitor != null && !_visitor.StartList();
            var count = reader.ReadVUInt32();

            while (count-- > 0)
            {
                var skipItem = skip || _visitor != null && !_visitor.StartItem();
                IterateHandler(reader, itemHandler, skipItem, null);
                if (!skipItem)
                {
                    _visitor?.EndItem();
                }
            }
            if (!skip)
            {
                _visitor?.EndList();
            }
        }
Example #27
0
        public TypeInf(AbstractBufferedReader reader, IFieldHandlerFactory fieldHandlerFactory)
        {
            _type = null;
            _name = reader.ReadString();
            var methodCount = reader.ReadVUInt32();

            _methodInfs = new MethodInf[methodCount];
            for (int i = 0; i < methodCount; i++)
            {
                _methodInfs[i] = new MethodInf(reader, fieldHandlerFactory);
            }
            var properyCount = reader.ReadVUInt32();

            _propertyInfs = new PropertyInf[properyCount];
            for (int i = 0; i < properyCount; i++)
            {
                PropertyInfs[i] = new PropertyInf(reader, fieldHandlerFactory);
            }
        }
Example #28
0
 public FileKeyIndex(AbstractBufferedReader reader, Guid?guid, bool withCommitUlong, bool modern, bool withUlongs)
 {
     _guid            = guid;
     _generation      = reader.ReadVInt64();
     _trLogFileId     = reader.ReadVUInt32();
     _trLogOffset     = reader.ReadVUInt32();
     _keyValueCount   = (long)reader.ReadVUInt64();
     _commitUlong     = withCommitUlong ? reader.ReadVUInt64() : 0;
     _compressionType = modern ? (KeyIndexCompression)reader.ReadUInt8() : KeyIndexCompression.Old;
     _ulongs          = null;
     if (withUlongs)
     {
         _ulongs = new ulong[reader.ReadVUInt32()];
         for (var i = 0; i < _ulongs.Length; i++)
         {
             _ulongs[i] = reader.ReadVUInt64();
         }
     }
 }
Example #29
0
 public FileTransactionLog(AbstractBufferedReader reader, Guid?guid)
 {
     _guid           = guid;
     _generation     = reader.ReadVInt64();
     _previousFileId = (uint)reader.ReadVInt32();
 }
Example #30
0
 public DictionaryTypeDescriptor(ITypeDescriptorCallbacks typeSerializers, AbstractBufferedReader reader, Func <AbstractBufferedReader, ITypeDescriptor> nestedDescriptorReader)
     : this(typeSerializers, nestedDescriptorReader(reader), nestedDescriptorReader(reader))
 {
 }
Example #31
0
 public KeyValueDBReplayer(string logname)
 {
     _reader = new PositionLessStreamReader(new PositionLessStreamProxy(logname));
 }