class CachedObjectDirectory extends FileObjectDatabase
ObjectDirectory.
This class caches the list of loose objects in memory, so the file system is not queried with stat calls.
| Modifier and Type | Class and Description |
|---|---|
private static class |
CachedObjectDirectory.UnpackedObjectId |
FileObjectDatabase.InsertLooseObjectResult| Modifier and Type | Field and Description |
|---|---|
private CachedObjectDirectory[] |
alts |
private ObjectIdOwnerMap<CachedObjectDirectory.UnpackedObjectId> |
unpackedObjects
The set that contains unpacked objects identifiers, it is created when
the cached instance is created.
|
private ObjectDirectory |
wrapped |
| Constructor and Description |
|---|
CachedObjectDirectory(ObjectDirectory wrapped)
The constructor
|
| Modifier and Type | Method and Description |
|---|---|
void |
close()
Close any resources held by this database.
|
(package private) java.io.File |
fileFor(AnyObjectId id) |
private ObjectDirectory.AlternateHandle.Id |
getAlternateId() |
(package private) Config |
getConfig() |
(package private) java.io.File |
getDirectory() |
(package private) FS |
getFS() |
(package private) long |
getObjectSize(WindowCursor curs,
AnyObjectId objectId) |
(package private) java.util.Collection<PackFile> |
getPacks() |
(package private) java.util.Set<ObjectId> |
getShallowCommits() |
boolean |
has(AnyObjectId objectId)
Does the requested object exist in this database?
|
private boolean |
has(AnyObjectId objectId,
java.util.Set<ObjectDirectory.AlternateHandle.Id> skips) |
(package private) FileObjectDatabase.InsertLooseObjectResult |
insertUnpackedObject(java.io.File tmp,
ObjectId objectId,
boolean createDuplicate) |
private CachedObjectDirectory[] |
myAlternates() |
ObjectDatabase |
newCachedDatabase()
Create a new cached database instance over this database.
|
(package private) ObjectLoader |
openLooseObject(WindowCursor curs,
AnyObjectId id) |
(package private) ObjectLoader |
openObject(WindowCursor curs,
AnyObjectId objectId) |
private ObjectLoader |
openObject(WindowCursor curs,
AnyObjectId objectId,
java.util.Set<ObjectDirectory.AlternateHandle.Id> skips) |
(package private) PackFile |
openPack(java.io.File pack) |
(package private) void |
resolve(java.util.Set<ObjectId> matches,
AbbreviatedObjectId id) |
private ObjectIdOwnerMap<CachedObjectDirectory.UnpackedObjectId> |
scanLoose() |
(package private) void |
selectObjectRepresentation(PackWriter packer,
ObjectToPack otp,
WindowCursor curs) |
private java.util.Set<ObjectDirectory.AlternateHandle.Id> |
skipMe(java.util.Set<ObjectDirectory.AlternateHandle.Id> skips) |
newInserter, newReadercreate, exists, open, openprivate ObjectIdOwnerMap<CachedObjectDirectory.UnpackedObjectId> unpackedObjects
private final ObjectDirectory wrapped
private CachedObjectDirectory[] alts
CachedObjectDirectory(ObjectDirectory wrapped)
wrapped - the wrapped databaseprivate ObjectIdOwnerMap<CachedObjectDirectory.UnpackedObjectId> scanLoose()
public void close()
close in class ObjectDatabasepublic ObjectDatabase newCachedDatabase()
newCachedDatabase in class ObjectDatabasejava.io.File getDirectory()
getDirectory in class FileObjectDatabasejava.io.File fileFor(AnyObjectId id)
fileFor in class FileObjectDatabaseConfig getConfig()
getConfig in class FileObjectDatabaseFS getFS()
getFS in class FileObjectDatabasejava.util.Set<ObjectId> getShallowCommits() throws java.io.IOException
getShallowCommits in class FileObjectDatabasejava.io.IOExceptionprivate CachedObjectDirectory[] myAlternates()
private java.util.Set<ObjectDirectory.AlternateHandle.Id> skipMe(java.util.Set<ObjectDirectory.AlternateHandle.Id> skips)
void resolve(java.util.Set<ObjectId> matches, AbbreviatedObjectId id) throws java.io.IOException
resolve in class FileObjectDatabasejava.io.IOExceptionpublic boolean has(AnyObjectId objectId) throws java.io.IOException
This is a one-shot call interface which may be faster than allocating a
ObjectDatabase.newReader() to perform the lookup.
has in class ObjectDatabaseobjectId - identity of the object to test for existence of.java.io.IOException - the object store cannot be accessed.private boolean has(AnyObjectId objectId, java.util.Set<ObjectDirectory.AlternateHandle.Id> skips) throws java.io.IOException
java.io.IOExceptionObjectLoader openObject(WindowCursor curs, AnyObjectId objectId) throws java.io.IOException
openObject in class FileObjectDatabasejava.io.IOExceptionprivate ObjectLoader openObject(WindowCursor curs, AnyObjectId objectId, java.util.Set<ObjectDirectory.AlternateHandle.Id> skips) throws java.io.IOException
java.io.IOExceptionlong getObjectSize(WindowCursor curs, AnyObjectId objectId) throws java.io.IOException
getObjectSize in class FileObjectDatabasejava.io.IOExceptionObjectLoader openLooseObject(WindowCursor curs, AnyObjectId id) throws java.io.IOException
openLooseObject in class FileObjectDatabasejava.io.IOExceptionFileObjectDatabase.InsertLooseObjectResult insertUnpackedObject(java.io.File tmp, ObjectId objectId, boolean createDuplicate) throws java.io.IOException
insertUnpackedObject in class FileObjectDatabasejava.io.IOExceptionPackFile openPack(java.io.File pack) throws java.io.IOException
openPack in class FileObjectDatabasejava.io.IOExceptionvoid selectObjectRepresentation(PackWriter packer, ObjectToPack otp, WindowCursor curs) throws java.io.IOException
selectObjectRepresentation in class FileObjectDatabasejava.io.IOExceptionjava.util.Collection<PackFile> getPacks()
getPacks in class FileObjectDatabaseprivate ObjectDirectory.AlternateHandle.Id getAlternateId()