aboutsummaryrefslogtreecommitdiff
path: root/src/libstore/store-api.hh
diff options
context:
space:
mode:
Diffstat (limited to 'src/libstore/store-api.hh')
-rw-r--r--src/libstore/store-api.hh25
1 files changed, 6 insertions, 19 deletions
diff --git a/src/libstore/store-api.hh b/src/libstore/store-api.hh
index 2b4672748..696a2d3fd 100644
--- a/src/libstore/store-api.hh
+++ b/src/libstore/store-api.hh
@@ -175,25 +175,7 @@ struct StoreConfig : public Config
{
using Config::Config;
- /**
- * When constructing a store implementation, we pass in a map `params` of
- * parameters that's supposed to initialize the associated config.
- * To do that, we must use the `StoreConfig(StringMap & params)`
- * constructor, so we'd like to `delete` its default constructor to enforce
- * it.
- *
- * However, actually deleting it means that all the subclasses of
- * `StoreConfig` will have their default constructor deleted (because it's
- * supposed to call the deleted default constructor of `StoreConfig`). But
- * because we're always using virtual inheritance, the constructors of
- * child classes will never implicitely call this one, so deleting it will
- * be more painful than anything else.
- *
- * So we `assert(false)` here to ensure at runtime that the right
- * constructor is always called without having to redefine a custom
- * constructor for each `*Config` class.
- */
- StoreConfig() { assert(false); }
+ StoreConfig() = delete;
virtual ~StoreConfig() { }
@@ -624,6 +606,11 @@ public:
virtual ref<FSAccessor> getFSAccessor()
{ unsupported("getFSAccessor"); }
+ /* Repair the contents of the given path by redownloading it using
+ a substituter (if available). */
+ virtual void repairPath(const StorePath & path)
+ { unsupported("repairPath"); }
+
/* Add signatures to the specified store path. The signatures are
not verified. */
virtual void addSignatures(const StorePath & storePath, const StringSet & sigs)