Class IDFile
- java.lang.Object
-
- org.eclipse.rdf4j.sail.nativerdf.datastore.IDFile
-
- All Implemented Interfaces:
Closeable,AutoCloseable
public class IDFile extends Object implements Closeable
Class supplying access to an ID file. An ID file maps IDs (integers >= 1) to file pointers (long integers). There is a direct correlation between IDs and the position at which the file pointers are stored; the file pointer for ID X is stored at position 8*X.This class supports parallel reads but not parallel writes.
- Author:
- Arjohn Kampman
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclear()Discards all stored data.voidclearCache()voidclose()Closes the ID file, releasing any file locks that it might have.FilegetFile()intgetMaxID()Gets the largest ID that is stored in this ID file.longgetOffset(int id)Gets the offset of the data entry with the specified ID.voidsetOffset(int id, long offset)Sets or updates the stored offset for the specified ID.intstoreOffset(long offset)Stores the offset of a new data entry, returning the ID under which is stored.voidsync()Syncs any unstored data to the hash file.voidsync(boolean force)
-
-
-
Constructor Detail
-
IDFile
public IDFile(File file) throws IOException
- Throws:
IOException
-
IDFile
public IDFile(File file, boolean forceSync) throws IOException
- Throws:
IOException
-
-
Method Detail
-
getFile
public final File getFile()
-
getMaxID
public int getMaxID()
Gets the largest ID that is stored in this ID file.- Returns:
- The largest ID, or 0 if the file does not contain any data.
-
storeOffset
public int storeOffset(long offset) throws IOExceptionStores the offset of a new data entry, returning the ID under which is stored.- Throws:
IOException
-
setOffset
public void setOffset(int id, long offset) throws IOExceptionSets or updates the stored offset for the specified ID.- Parameters:
id- The ID to set the offset for, must be larger than 0.offset- The (new) offset for the specified ID.- Throws:
IOException
-
getOffset
public long getOffset(int id) throws IOExceptionGets the offset of the data entry with the specified ID.- Parameters:
id- The ID to get the offset for, must be larger than 0.- Returns:
- The offset for the ID.
- Throws:
IOException
-
clear
public void clear() throws IOExceptionDiscards all stored data.- Throws:
IOException- If an I/O error occurred.
-
sync
public void sync() throws IOExceptionSyncs any unstored data to the hash file.- Throws:
IOException
-
sync
public void sync(boolean force) throws IOException- Throws:
IOException
-
close
public void close() throws IOExceptionCloses the ID file, releasing any file locks that it might have.- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Throws:
IOException
-
clearCache
public void clearCache()
-
-