summaryrefslogtreecommitdiff
path: root/src/buildtool/storage/garbage_collector.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/buildtool/storage/garbage_collector.hpp')
-rw-r--r--src/buildtool/storage/garbage_collector.hpp14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/buildtool/storage/garbage_collector.hpp b/src/buildtool/storage/garbage_collector.hpp
index f4966c28..e6bc8739 100644
--- a/src/buildtool/storage/garbage_collector.hpp
+++ b/src/buildtool/storage/garbage_collector.hpp
@@ -26,12 +26,18 @@
/// Responsible for deleting oldest generation.
class GarbageCollector {
public:
- /// \brief Trigger garbage collection; unless no_rotation is given, this
- /// will include rotation of generations and deleting the oldest generation.
- /// \returns true on success.
+ /// \brief Trigger garbage collection
+ /// \param storage_config Storage to collect garbage in
+ /// \param no_rotation Skip rotation of generation and perform only steps
+ /// that can be done without losing existing cache. Incompatible with
+ /// gc_all.
+ /// \param gc_all Remove all cache generations at once. Incompatible with
+ /// no_rotation.
+ /// \return true on success.
[[nodiscard]] auto static TriggerGarbageCollection(
StorageConfig const& storage_config,
- bool no_rotation = false) noexcept -> bool;
+ bool no_rotation = false,
+ bool gc_all = false) noexcept -> bool;
/// \brief Acquire shared lock to prevent garbage collection from running.
/// \param storage_config Storage to be locked.