BTDB.ODBLayer.DBWriterCtx.CommonWriteObject C# (CSharp) Method

CommonWriteObject() private method

private CommonWriteObject ( object @object, bool autoRegister, bool forceInline ) : bool
@object object
autoRegister bool
forceInline bool
return bool
        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>();
            int cid;
            if (_objectIdMap.TryGetValue(@object, out cid))
            {
                _writer.WriteVInt64(-cid);
                return false;
            }
            _lastId++;
            _objectIdMap.Add(@object, _lastId);
            _writer.WriteVInt64(-_lastId);
            return true;
        }