Esempio n. 1
0
 internal void Store(AbstractBufferedWriter writer)
 {
     writer.WriteVUInt32(BindingId);
     writer.WriteVUInt32(ServiceId);
     writer.WriteVUInt32(MethodId);
     writer.WriteBool(OneWay);
 }
Esempio n. 2
0
 void StoreHashUpdate(ByteBuffer key, StorageValue storageValue)
 {
     if (_hashIndexWriter == null)
     {
         StartNewHashIndexFile();
     }
     _hashIndexWriter.WriteVUInt32(storageValue.FileId);
     _hashIndexWriter.WriteVUInt32(storageValue.FileOfs);
     _hashIndexWriter.WriteVUInt32(storageValue.ContentLengthCompressedIsLeaf);
     _hashIndexWriter.WriteBlock(key);
 }
Esempio n. 3
0
 internal void WriteHeader(AbstractBufferedWriter writer)
 {
     FileCollectionWithFileInfos.WriteHeader(writer, _guid);
     writer.WriteUInt8((byte)KVFileType.ModernKeyIndex);
     writer.WriteVInt64(_generation);
     writer.WriteVUInt32(_trLogFileId);
     writer.WriteVUInt32(_trLogOffset);
     writer.WriteVUInt64((ulong)_keyValueCount);
     writer.WriteVUInt64(_commitUlong);
     writer.WriteUInt8((byte)_compressionType);
 }
Esempio n. 4
0
        public IKeyValueDBTransaction StartTransaction()
        {
            var result = new KeyValueDBReplayTransactionProxy(_db.StartTransaction(), _log, ref _trCounter);

            lock (_log)
            {
                _log.WriteUInt8((byte)KVReplayOperation.StartTransaction);
                _log.WriteVUInt32(result.TrIndex);
                _log.FlushBuffer();
            }
            return(result);
        }
Esempio n. 5
0
 public void Store(AbstractBufferedWriter writer)
 {
     writer.WriteString(_name);
     writer.WriteVUInt32((uint)_methodInfs.Length);
     foreach (var methodInf in _methodInfs)
     {
         methodInf.Store(writer);
     }
     writer.WriteVUInt32((uint)PropertyInfs.Length);
     foreach (var propertyInf in PropertyInfs)
     {
         propertyInf.Store(writer);
     }
 }
Esempio n. 6
0
 internal void Save(AbstractBufferedWriter writer)
 {
     writer.WriteVUInt32((uint)_primaryKeyFields.Count);
     foreach (var field in _primaryKeyFields)
     {
         field.Save(writer);
     }
     writer.WriteVUInt32((uint)_secondaryKeyFields.Count);
     foreach (var field in _secondaryKeyFields)
     {
         field.Save(writer);
     }
     writer.WriteVUInt32((uint)_secondaryKeys.Count);
     foreach (var key in _secondaryKeys)
     {
         writer.WriteVUInt32(key.Key);
         var info = key.Value;
         writer.WriteVUInt32(0); //unused
         writer.WriteString(info.Name);
         writer.WriteVUInt32((uint)info.Fields.Count);
         foreach (var fi in info.Fields)
         {
             writer.WriteBool(fi.IsFromPrimaryKey);
             writer.WriteVUInt32(fi.Index);
         }
     }
     writer.WriteVUInt32((uint)_fields.Length);
     for (var i = 0; i < _fields.Length; i++)
     {
         _fields[i].Save(writer);
     }
 }
Esempio n. 7
0
        static void StoreObjectCore(TypeSerializers typeSerializers, AbstractBufferedWriter writer, object obj, InfoForType infoForType, ITypeSerializersLightMapping mapping)
        {
            writer.WriteVUInt32((uint)infoForType.Id);
            if (!infoForType.KnownSimpleSaver)
            {
                infoForType.SimpleSaver      = typeSerializers.GetSimpleSaver(infoForType.Descriptor);
                infoForType.KnownSimpleSaver = true;
            }
            var simpleSaver = infoForType.SimpleSaver;

            if (simpleSaver != null)
            {
                simpleSaver(writer, obj);
                return;
            }
            if (!infoForType.KnownComplexSaver)
            {
                infoForType.ComplexSaver      = typeSerializers.GetComplexSaver(infoForType.Descriptor);
                infoForType.KnownComplexSaver = true;
            }
            var complexSaver = infoForType.ComplexSaver;
            var ctx          = new TypeBinarySerializerContext(mapping, writer, obj);

            complexSaver(writer, ctx, obj);
        }
Esempio n. 8
0
        // ReSharper disable UnusedMember.Global
        public static void SaverImpl <T>(AbstractBufferedWriter writer, IList <T> ilist) where T : class
        // ReSharper restore UnusedMember.Global
        {
            if (ilist == null)
            {
                writer.WriteVUInt32(0);
                return;
            }
            var oids = ((ListOfDBObject <T>)ilist).Oids;

            writer.WriteVUInt32((uint)oids.Count);
            foreach (var oid in oids)
            {
                writer.WriteVUInt64(oid);
            }
        }
Esempio n. 9
0
 internal void WriteHeader(AbstractBufferedWriter writer)
 {
     FileCollectionWithFileInfos.WriteHeader(writer, _guid);
     writer.WriteUInt8((byte)KVFileType.HashKeyIndex);
     writer.WriteVInt64(_subId);
     writer.WriteVInt64(_generation);
     writer.WriteVUInt32(_keyLen);
 }
Esempio n. 10
0
 internal void Save(AbstractBufferedWriter writer)
 {
     writer.WriteVUInt32((uint)FieldCount);
     for (int i = 0; i < FieldCount; i++)
     {
         this[i].Save(writer);
     }
 }
Esempio n. 11
0
 internal void WriteHeader(AbstractBufferedWriter writer)
 {
     writer.WriteByteArrayRaw(DiskChunkCache.MagicStartOfFile);
     writer.WriteUInt8((byte)DiskChunkFileType.HashIndex);
     writer.WriteVInt64(_generation);
     writer.WriteVUInt32((uint)KeySize);
     writer.WriteVUInt64((ulong)KeyValueCount);
 }
Esempio n. 12
0
        internal void WriteHeader(AbstractBufferedWriter writer)
        {
            FileCollectionWithFileInfos.WriteHeader(writer, _guid);
            writer.WriteUInt8((byte)KVFileType.ModernKeyIndexWithUlongs);
            writer.WriteVInt64(_generation);
            writer.WriteVUInt32(_trLogFileId);
            writer.WriteVUInt32(_trLogOffset);
            writer.WriteVUInt64((ulong)_keyValueCount);
            writer.WriteVUInt64(_commitUlong);
            writer.WriteUInt8((byte)_compressionType);
            var ulongCount = (uint)(_ulongs?.Length ?? 0);

            writer.WriteVUInt32(ulongCount);
            if (ulongCount > 0)
            {
                for (var i = 0; i < ulongCount; i++)
                {
                    writer.WriteVUInt64(_ulongs ![i]);
Esempio n. 13
0
 public void Persist(AbstractBufferedWriter writer, Action <AbstractBufferedWriter, ITypeDescriptor> nestedDescriptorPersistor)
 {
     writer.WriteString(Name);
     writer.WriteVUInt32((uint)_fields.Count);
     foreach (var pair in _fields)
     {
         writer.WriteString(pair.Key);
         nestedDescriptorPersistor(writer, pair.Value);
     }
 }
Esempio n. 14
0
            public void StoreObject(object obj)
            {
                if (obj == null)
                {
                    _writer.WriteUInt8(0);
                    return;
                }
                uint backRefId;

                if (_backrefs.TryGetValue(obj, out backRefId))
                {
                    _writer.WriteUInt8(1);
                    _writer.WriteVUInt32(backRefId);
                    return;
                }
                _backrefs.Add(obj, (uint)_backrefs.Count);
                TypeSerializers typeSerializers;
                var             infoForType = _mapping.GetInfoFromObject(obj, out typeSerializers);

                _writer.WriteVUInt32((uint)infoForType.Id);
                if (!infoForType.KnownSimpleSaver)
                {
                    infoForType.SimpleSaver      = typeSerializers.GetSimpleSaver(infoForType.Descriptor);
                    infoForType.KnownSimpleSaver = true;
                }
                var simpleSaver = infoForType.SimpleSaver;

                if (simpleSaver != null)
                {
                    simpleSaver(_writer, obj);
                    return;
                }
                if (!infoForType.KnownComplexSaver)
                {
                    infoForType.ComplexSaver      = typeSerializers.GetComplexSaver(infoForType.Descriptor);
                    infoForType.KnownComplexSaver = true;
                }
                var complexSaver = infoForType.ComplexSaver;

                complexSaver(_writer, this, obj);
            }
Esempio n. 15
0
 public void FinishNewDescriptors(AbstractBufferedWriter writer)
 {
     if (SomeTypeStored)
     {
         for (int i = _id2InfoMap.Count - 1; i >= 0; i--)
         {
             writer.WriteVUInt32((uint)(i + _typeSerializersMapping._id2DescriptorMap.Count));
             _typeSerializers.StoreDescriptor(_id2InfoMap[i].Descriptor, writer, Descriptor2Id);
         }
         writer.WriteUInt8(0);
     }
 }
Esempio n. 16
0
        public bool WriteObject([NotNullWhen(true)] object? @object)
        {
            if (@object == null)
            {
                _writer.WriteByteZero();
                return(false);
            }
            if (_objectIdMap == null)
            {
                _objectIdMap = new Dictionary <object, uint>();
            }
            uint cid;

            if (_objectIdMap.TryGetValue(@object, out cid))
            {
                _writer.WriteVUInt32(cid);
                return(false);
            }
            _lastId++;
            _objectIdMap.Add(@object, _lastId);
            _writer.WriteVUInt32(_lastId);
            return(true);
        }
Esempio n. 17
0
 public void Persist(AbstractBufferedWriter writer, Action <AbstractBufferedWriter, ITypeDescriptor> nestedDescriptorPersistor)
 {
     writer.WriteString(_name);
     writer.WriteVUInt32((_signed ? 1u : 0) + (_flags ? 2u : 0) + 4u * (uint)_pairs.Count);
     foreach (var pair in _pairs)
     {
         writer.WriteString(pair.Key);
         if (_signed)
         {
             writer.WriteVInt64((long)pair.Value);
         }
         else
         {
             writer.WriteVUInt64(pair.Value);
         }
     }
 }
Esempio n. 18
0
 public void Store(AbstractBufferedWriter writer)
 {
     writer.WriteString(_name);
     writer.WriteString(_ifaceName);
     if (_resultFieldHandler != null)
     {
         writer.WriteString(_resultFieldHandler.Name);
         writer.WriteByteArray(_resultFieldHandler.Configuration);
     }
     else
     {
         writer.WriteString(null);
     }
     writer.WriteVUInt32((uint)_parameters.Length);
     foreach (var parameter in _parameters)
     {
         parameter.Store(writer);
     }
 }
Esempio n. 19
0
 void LogSimpleOperation(KVReplayOperation operation)
 {
     lock (_log)
     {
         _log.WriteUInt8((byte)operation);
         _log.WriteVUInt32(TrIndex);
         _log.FlushBuffer();
     }
 }