public abstract class AbstractBinaryGarbageCollector<T extends CachingBinaryManager> extends Object implements BinaryGarbageCollector
Modifier and Type | Field and Description |
---|---|
protected T |
binaryManager |
protected Set<String> |
marked |
protected long |
startTime |
protected BinaryManagerStatus |
status |
Modifier | Constructor and Description |
---|---|
protected |
AbstractBinaryGarbageCollector(T binaryManager) |
Modifier and Type | Method and Description |
---|---|
BinaryManagerStatus |
getStatus()
Gets the status of the binaries to GC and of those that won't be.
|
abstract Set<String> |
getUnmarkedBlobs() |
boolean |
isInProgress()
Checks if a GC is in progress.
|
void |
mark(String digest)
Marks a binary as being in use.
|
void |
start()
Starts the garbage collection process.
|
void |
stop(boolean delete)
Stops the garbage collection process and deletes all binaries that have not been marked (sweep).
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getId
protected T extends CachingBinaryManager binaryManager
protected BinaryManagerStatus status
protected volatile long startTime
protected AbstractBinaryGarbageCollector(T binaryManager)
public void start()
BinaryGarbageCollector
After this, all active binaries must be fed to the BinaryGarbageCollector.mark(java.lang.String)
method.
start
in interface BinaryGarbageCollector
public void stop(boolean delete)
BinaryGarbageCollector
stop
in interface BinaryGarbageCollector
delete
- true
if actual deletion must be performed, false
if the binaries to delete should
simply be counted in the statuspublic abstract Set<String> getUnmarkedBlobs()
public void mark(String digest)
BinaryGarbageCollector
mark
in interface BinaryGarbageCollector
digest
- the binary's digestpublic BinaryManagerStatus getStatus()
BinaryGarbageCollector
Available after BinaryGarbageCollector.stop(boolean)
.
getStatus
in interface BinaryGarbageCollector
public boolean isInProgress()
BinaryGarbageCollector
A GC is in progress is #start
has been called but not #stop
.
It's only useful to call this from a separate thread from the one that calls BinaryGarbageCollector.mark(java.lang.String)
.
isInProgress
in interface BinaryGarbageCollector
true
if a GC is in progressCopyright © 2017 Nuxeo. All rights reserved.