BuildKeyForTableVersions() static private method

static private BuildKeyForTableVersions ( uint tableId, uint tableVersion ) : byte[]
tableId uint
tableVersion uint
return byte[]
Esempio n. 1
0
 void PersistTableInfo(TableInfo tableInfo)
 {
     _keyValueTrProtector.Start();
     if (tableInfo.LastPersistedVersion != tableInfo.ClientTypeVersion)
     {
         if (tableInfo.LastPersistedVersion <= 0)
         {
             _keyValueTr.SetKeyPrefix(ObjectDB.TableNamesPrefix);
             if (_keyValueTr.CreateKey(BuildKeyFromOid(tableInfo.Id)))
             {
                 using (var writer = new KeyValueDBValueWriter(_keyValueTr))
                 {
                     writer.WriteString(tableInfo.Name);
                 }
             }
         }
         _keyValueTr.SetKeyPrefix(ObjectDB.TableVersionsPrefix);
         if (_keyValueTr.CreateKey(TableInfo.BuildKeyForTableVersions(tableInfo.Id, tableInfo.ClientTypeVersion)))
         {
             var tableVersionInfo = tableInfo.ClientTableVersionInfo;
             using (var writer = new KeyValueDBValueWriter(_keyValueTr))
             {
                 tableVersionInfo.Save(writer);
             }
         }
     }
     if (tableInfo.NeedStoreSingletonOid)
     {
         _keyValueTr.SetKeyPrefix(ObjectDB.TableSingletonsPrefix);
         _keyValueTr.CreateOrUpdateKeyValue(BuildKeyFromOid(tableInfo.Id), BuildKeyFromOid((ulong)tableInfo.SingletonOid));
     }
 }
Esempio n. 2
0
 TableVersionInfo ITableInfoResolver.LoadTableVersionInfo(uint id, uint version, string tableName)
 {
     using (var tr = _keyValueDB.StartTransaction())
     {
         tr.SetKeyPrefix(TableVersionsPrefix);
         var key = TableInfo.BuildKeyForTableVersions(id, version);
         if (!tr.FindExactKey(key))
         {
             throw new BTDBException($"Missing TableVersionInfo Id:{id} Version:{version}");
         }
         return(TableVersionInfo.Load(new KeyValueDBValueReader(tr), _objectDB.FieldHandlerFactory, tableName));
     }
 }
Esempio n. 3
0
 uint ITableInfoResolver.GetLastPersistedVersion(uint id)
 {
     using (var tr = _keyValueDB.StartTransaction())
     {
         tr.SetKeyPrefix(TableVersionsPrefix);
         var key = TableInfo.BuildKeyForTableVersions(id, uint.MaxValue);
         if (tr.Find(ByteBuffer.NewSync(key)) == FindResult.NotFound)
         {
             return(0);
         }
         var key2 = tr.GetKeyAsByteArray();
         var ofs  = PackUnpack.LengthVUInt(id);
         if (key2.Length < ofs)
         {
             return(0);
         }
         if (BitArrayManipulation.CompareByteArray(key, ofs, key2, ofs) != 0)
         {
             return(0);
         }
         return(checked ((uint)PackUnpack.UnpackVUInt(key2, ref ofs)));
     }
 }