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, waitgetIdprotected 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 BinaryGarbageCollectorpublic void stop(boolean delete)
BinaryGarbageCollectorstop in interface BinaryGarbageCollectordelete - 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)
BinaryGarbageCollectormark in interface BinaryGarbageCollectordigest - the binary's digestpublic BinaryManagerStatus getStatus()
BinaryGarbageCollector
Available after BinaryGarbageCollector.stop(boolean).
getStatus in interface BinaryGarbageCollectorpublic 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 BinaryGarbageCollectortrue if a GC is in progressCopyright © 2016 Nuxeo SA. All rights reserved.