AllocateNewOid() приватный Метод

private AllocateNewOid ( ) : ulong
Результат ulong
Пример #1
0
 public ulong GetSingletonOid(uint id)
 {
     using (var tr = _keyValueDB.StartTransaction())
     {
         tr.SetKeyPrefix(TableSingletonsPrefix);
         var key = new byte[PackUnpack.LengthVUInt(id)];
         var ofs = 0;
         PackUnpack.PackVUInt(key, ref ofs, id);
         if (tr.FindExactKey(key))
         {
             return(new KeyValueDBValueReader(tr).ReadVUInt64());
         }
         return(_objectDB.AllocateNewOid());
     }
 }
Пример #2
0
        public ulong Store(object @object)
        {
            var indirect = @object as IIndirect;

            if (indirect != null)
            {
                if (GetObjFromObjCacheByOid(indirect.Oid) == null)
                {
                    return(indirect.Oid);
                }
                @object = indirect.ValueAsObject;
            }

            var ti = AutoRegisterType(@object.GetType());

            ti.EnsureClientTypeVersion();
            DBObjectMetadata metadata;

            if (_objSmallMetadata != null)
            {
                if (_objSmallMetadata.TryGetValue(@object, out metadata))
                {
                    if (metadata.Id == 0)
                    {
                        metadata.Id = _owner.AllocateNewOid();
                        _objSmallCache.Add(metadata.Id, @object);
                    }
                    if (metadata.State != DBObjectState.Dirty)
                    {
                        metadata.State = DBObjectState.Dirty;
                        AddToDirtySet(metadata.Id, @object);
                    }
                    return(metadata.Id);
                }
            }
            else if (_objBigMetadata != null)
            {
                if (_objBigMetadata.TryGetValue(@object, out metadata))
                {
                    if (metadata.Id == 0)
                    {
                        metadata.Id = _owner.AllocateNewOid();
                        CompactObjCacheIfNeeded();
                        _objBigCache.Add(metadata.Id, new WeakReference(@object));
                    }
                    if (metadata.State != DBObjectState.Dirty)
                    {
                        metadata.State = DBObjectState.Dirty;
                        AddToDirtySet(metadata.Id, @object);
                    }
                    return(metadata.Id);
                }
            }
            return(RegisterNewObject(@object));
        }
Пример #3
0
 public ulong AllocateNewOid()
 {
     return(_objectDB.AllocateNewOid());
 }
Пример #4
0
        public ulong CreateNewObjectId()
        {
            var id = _owner.AllocateNewOid();

            return(id);
        }