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); }
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; }
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; } }
/// <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); }
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; } }
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; }