public void WriteHeader(AbstractBufferedWriter writer)
 {
     FileCollectionWithFileInfos.WriteHeader(writer, _guid);
     writer.WriteUInt8((byte)KVFileType.PureValuesWithId);
     writer.WriteVInt64(_subId);
     writer.WriteVInt64(_generation);
 }
Exemple #2
0
        bool CommonWriteObject(object? @object, bool autoRegister, bool forceInline)
        {
            if (@object == null)
            {
                _writer.WriteVInt64(0);
                return(false);
            }
            var oid = _transaction.StoreIfNotInlined(@object, autoRegister, forceInline);

            if (oid != ulong.MaxValue)
            {
                _writer.WriteVInt64((long)oid);
                return(false);
            }
            if (_objectIdMap == null)
            {
                _objectIdMap = new Dictionary <object, int>();
            }
            if (_objectIdMap.TryGetValue(@object, out var cid))
            {
                _writer.WriteVInt64(-cid);
                return(false);
            }
            _lastId++;
            _objectIdMap.Add(@object, _lastId);
            _writer.WriteVInt64(-_lastId);
            return(true);
        }
Exemple #3
0
 internal void WriteHeader(AbstractBufferedWriter writer)
 {
     FileCollectionWithFileInfos.WriteHeader(writer, _guid);
     writer.WriteUInt8((byte)KVFileType.HashKeyIndex);
     writer.WriteVInt64(_subId);
     writer.WriteVInt64(_generation);
     writer.WriteVUInt32(_keyLen);
 }
Exemple #4
0
 internal void WriteHeader(AbstractBufferedWriter writer)
 {
     FileCollectionWithFileInfos.WriteHeader(writer, _guid);
     writer.WriteUInt8((byte)KVFileType.TransactionLog);
     writer.WriteVInt64(_generation);
     writer.WriteVInt32((int)_previousFileId);
 }
Exemple #5
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);
 }
Exemple #6
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);
 }
Exemple #7
0
 public void PeekValue(long ofs, out int len, out byte[] buf, out int bufOfs)
 {
     lock (_log)
     {
         _log.WriteUInt8((byte)KVReplayOperation.PeekValue);
         _log.WriteVUInt32(TrIndex);
         _log.WriteVInt64(ofs);
         _log.FlushBuffer();
     }
     _tr.PeekValue(ofs, out len, out buf, out bufOfs);
 }
Exemple #8
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);
         }
     }
 }
Exemple #9
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]);
Exemple #10
0
 public void WriteHeader(AbstractBufferedWriter writer)
 {
     writer.WriteByteArrayRaw(DiskChunkCache.MagicStartOfFile);
     writer.WriteUInt8((byte)DiskChunkFileType.PureValues);
     writer.WriteVInt64(_generation);
 }