Package org.nuxeo.ecm.core.blob.binary
Class LocalBinaryManager.DefaultBinaryGarbageCollector
- java.lang.Object
-
- org.nuxeo.ecm.core.blob.binary.LocalBinaryManager.DefaultBinaryGarbageCollector
-
- All Implemented Interfaces:
BinaryGarbageCollector
- Enclosing class:
- LocalBinaryManager
public static class LocalBinaryManager.DefaultBinaryGarbageCollector extends Object implements BinaryGarbageCollector
-
-
Field Summary
Fields Modifier and Type Field Description protected LocalBinaryManagerbinaryManagerprotected longstartTimeprotected BinaryManagerStatusstatusstatic intTIME_RESOLUTIONWindows FAT filesystems have a time resolution of 2s.
-
Constructor Summary
Constructors Constructor Description DefaultBinaryGarbageCollector(LocalBinaryManager binaryManager)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voiddeleteOld(File file, long minTime, int depth, boolean delete)StringgetId()Gets a unique identifier for this garbage collector.BinaryManagerStatusgetStatus()Gets the status of the binaries to GC and of those that won't be.booleanisInProgress()Checks if a GC is in progress.voidmark(String digest)Marks a binary as being in use.voidstart()Starts the garbage collection process.voidstop(boolean delete)Stops the garbage collection process and deletes all binaries that have not been marked (sweep).
-
-
-
Field Detail
-
TIME_RESOLUTION
public static final int TIME_RESOLUTION
Windows FAT filesystems have a time resolution of 2s. Other common filesystems have 1s.- See Also:
- Constant Field Values
-
binaryManager
protected final LocalBinaryManager binaryManager
-
startTime
protected volatile long startTime
-
status
protected BinaryManagerStatus status
-
-
Constructor Detail
-
DefaultBinaryGarbageCollector
public DefaultBinaryGarbageCollector(LocalBinaryManager binaryManager)
-
-
Method Detail
-
getId
public String getId()
Description copied from interface:BinaryGarbageCollectorGets a unique identifier for this garbage collector. Two garbage collectors that would impact the same files must have the same identifier.- Specified by:
getIdin interfaceBinaryGarbageCollector- Returns:
- a unique identifier
-
getStatus
public BinaryManagerStatus getStatus()
Description copied from interface:BinaryGarbageCollectorGets the status of the binaries to GC and of those that won't be.Available after
BinaryGarbageCollector.stop(boolean).- Specified by:
getStatusin interfaceBinaryGarbageCollector- Returns:
- the status
-
isInProgress
public boolean isInProgress()
Description copied from interface:BinaryGarbageCollectorChecks if a GC is in progress.A GC is in progress is
#starthas 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).- Specified by:
isInProgressin interfaceBinaryGarbageCollector- Returns:
trueif a GC is in progress
-
start
public void start()
Description copied from interface:BinaryGarbageCollectorStarts the garbage collection process.After this, all active binaries must be fed to the
BinaryGarbageCollector.mark(java.lang.String)method.- Specified by:
startin interfaceBinaryGarbageCollector
-
mark
public void mark(String digest)
Description copied from interface:BinaryGarbageCollectorMarks a binary as being in use.- Specified by:
markin interfaceBinaryGarbageCollector- Parameters:
digest- the binary's digest
-
stop
public void stop(boolean delete)
Description copied from interface:BinaryGarbageCollectorStops the garbage collection process and deletes all binaries that have not been marked (sweep).- Specified by:
stopin interfaceBinaryGarbageCollector- Parameters:
delete-trueif actual deletion must be performed,falseif the binaries to delete should simply be counted in the status
-
deleteOld
protected void deleteOld(File file, long minTime, int depth, boolean delete)
-
-