Package org.nuxeo.ecm.core.blob.binary
Interface BinaryGarbageCollector
- All Known Implementing Classes:
AbstractBinaryGarbageCollector
,AbstractBlobGarbageCollector
,AzureBlobStore.AzureBlobGarbageCollector
,AzureGarbageCollector
,CachingBlobStore.CachingBinaryGarbageCollector
,EmptyBlobStore.EmptyBlobGarbageCollector
,GoogleStorageBinaryManager.GoogleStorageBinaryGarbageCollector
,GoogleStorageBlobStore.GoogleStorageBlobGarbageCollector
,GridFSBinaryManager.GridFSBinaryGarbageCollector
,GridFSBlobStore.GridFSBlobGarbageCollector
,InMemoryBlobStore.InMemoryBlobGarbageCollector
,LocalBinaryManager.DefaultBinaryGarbageCollector
,LocalBlobStore.LocalBlobGarbageCollector
,S3BinaryManager.S3BinaryGarbageCollector
,S3BlobStore.S3BlobGarbageCollector
public interface BinaryGarbageCollector
A Garbage Collector for a
BinaryManager
.
First, inform the GC that it is started by calling start()
.
Then for all binaries to mark, call mark(java.lang.String)
.
Finally when all binaries have been marked, callstop(boolean)
to delete the non-marked binaries.
After this, getStatus()
returns information about the binaries remaining and those that have been GCed.
-
Method Summary
Modifier and TypeMethodDescriptiongetId()
Gets a unique identifier for this garbage collector.Gets the status of the binaries to GC and of those that won't be.boolean
Checks if a GC is in progress.void
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).
-
Method Details
-
getId
String getId()Gets a unique identifier for this garbage collector. Two garbage collectors that would impact the same files must have the same identifier.- Returns:
- a unique identifier
-
start
void start()Starts the garbage collection process.After this, all active binaries must be fed to the
mark(java.lang.String)
method. -
mark
Marks a binary as being in use.- Parameters:
digest
- the binary's digest
-
stop
void stop(boolean delete) Stops the garbage collection process and deletes all binaries that have not been marked (sweep).- Parameters:
delete
-true
if actual deletion must be performed,false
if the binaries to delete should simply be counted in the status
-
getStatus
BinaryManagerStatus getStatus()Gets the status of the binaries to GC and of those that won't be.Available after
stop(boolean)
.- Returns:
- the status
-
isInProgress
boolean isInProgress()Checks if a GC is in progress.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
mark(java.lang.String)
.- Returns:
true
if a GC is in progress
-