示例#1
0
        public virtual bool IsDeleted(NeoDatis.Odb.OID oid)
        {
            if (oid == null)
            {
                throw new ODBRuntimeException(NeoDatisError.CacheNullOid);
            }
            IdInfo idInfo = null;

            objectPositionsByIds.TryGetValue(oid, out idInfo);
            if (idInfo != null)
            {
                return(idInfo.status == IDStatus.Deleted);
            }
            return(false);
        }
示例#2
0
        public virtual void SavePositionOfObjectWithOid(NeoDatis.Odb.OID oid, long objectPosition
                                                        )
        {
            if (oid == null)
            {
                throw new ODBRuntimeException(NeoDatisError.CacheNullOid);
            }
            IdInfo idInfo = new IdInfo(oid, objectPosition, IDStatus.Active);

            objectPositionsByIds[oid] = idInfo;
            // For monitoring purpose
            nbObjects = objects.Count;
            nbOids    = oids.Count;
            nbOih     = objectInfoPointersCacheFromOid.Count;
        }
示例#3
0
        public virtual void MarkIdAsDeleted(NeoDatis.Odb.OID oid)
        {
            if (oid == null)
            {
                throw new ODBRuntimeException(NeoDatisError.CacheNullOid);
            }
            IdInfo idInfo = null;

            objectPositionsByIds.TryGetValue(oid, out idInfo);
            if (idInfo != null)
            {
                idInfo.status = IDStatus.Deleted;
            }
            else
            {
                idInfo = new IdInfo(oid, -1, IDStatus.Deleted);
                objectPositionsByIds[oid] = idInfo;
            }
        }
示例#4
0
        /// <summary>
        /// Returns the position or -1 if it is not is the cache or
        /// StorageEngineConstant.NULL_OBJECT_ID_ID if it has been marked as deleted
        /// </summary>
        public virtual long GetObjectPositionByOid(NeoDatis.Odb.OID oid)
        {
            if (oid == null)
            {
                return(StorageEngineConstant.NullObjectIdId);
            }
            IdInfo idInfo = null;

            objectPositionsByIds.TryGetValue(oid, out idInfo);
            if (idInfo != null)
            {
                if (!IDStatus.IsActive(idInfo.status))
                {
                    return(StorageEngineConstant.DeletedObjectPosition);
                }
                return(idInfo.position);
            }
            // object is not in the cache
            return(StorageEngineConstant.ObjectIsNotInCache);
        }
示例#5
0
		public virtual void MarkIdAsDeleted(NeoDatis.Odb.OID oid)
		{
			if (oid == null)
			{
				throw new ODBRuntimeException(NeoDatisError.CacheNullOid);
			}
            IdInfo idInfo = null;
            
            objectPositionsByIds.TryGetValue(oid,out idInfo);
			if (idInfo != null)
			{
				idInfo.status = IDStatus.Deleted;
			}
			else
			{
				idInfo = new IdInfo(oid, -1, IDStatus.Deleted);
				objectPositionsByIds[oid] = idInfo;
			}
		}
示例#6
0
		public virtual void SavePositionOfObjectWithOid(NeoDatis.Odb.OID oid, long objectPosition
			)
		{
			if (oid == null)
			{
				throw new ODBRuntimeException(NeoDatisError.CacheNullOid);
			}
			IdInfo idInfo = new IdInfo(oid, objectPosition,IDStatus.Active);
			objectPositionsByIds[oid] = idInfo;
			// For monitoring purpose
			nbObjects = objects.Count;
			nbOids = oids.Count;
			nbOih = objectInfoPointersCacheFromOid.Count;
		}