aboutsummaryrefslogtreecommitdiff
path: root/src/libstore/nar-info-disk-cache.cc
diff options
context:
space:
mode:
authorEelco Dolstra <edolstra@gmail.com>2019-12-17 17:17:53 +0100
committerEelco Dolstra <edolstra@gmail.com>2019-12-17 17:17:53 +0100
commitf8abbdd4565542464f31f4dc203a9c3e091b3536 (patch)
tree5a582db41f23602b441a7fcb5ede5339fc1b6d42 /src/libstore/nar-info-disk-cache.cc
parent54bf5ba4227a234f8cd5102634b9a3b535e6fbdb (diff)
Add priority setting to stores
This allows overriding the priority of substituters, e.g. $ nix-store --store ~/my-nix/ -r /nix/store/df3m4da96d84ljzxx4mygfshm1p0r2n3-geeqie-1.4 \ --substituters 'http://cache.nixos.org?priority=100 daemon?priority=10' Fixes #3264.
Diffstat (limited to 'src/libstore/nar-info-disk-cache.cc')
-rw-r--r--src/libstore/nar-info-disk-cache.cc16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/libstore/nar-info-disk-cache.cc b/src/libstore/nar-info-disk-cache.cc
index 3a2cde55f..907645d86 100644
--- a/src/libstore/nar-info-disk-cache.cc
+++ b/src/libstore/nar-info-disk-cache.cc
@@ -147,26 +147,26 @@ public:
});
}
- bool cacheExists(const std::string & uri,
- bool & wantMassQuery, int & priority) override
+ std::optional<CacheInfo> cacheExists(const std::string & uri) override
{
- return retrySQLite<bool>([&]() {
+ return retrySQLite<std::optional<CacheInfo>>([&]() -> std::optional<CacheInfo> {
auto state(_state.lock());
auto i = state->caches.find(uri);
if (i == state->caches.end()) {
auto queryCache(state->queryCache.use()(uri));
- if (!queryCache.next()) return false;
+ if (!queryCache.next())
+ return std::nullopt;
state->caches.emplace(uri,
Cache{(int) queryCache.getInt(0), queryCache.getStr(1), queryCache.getInt(2) != 0, (int) queryCache.getInt(3)});
}
auto & cache(getCache(*state, uri));
- wantMassQuery = cache.wantMassQuery;
- priority = cache.priority;
-
- return true;
+ return CacheInfo {
+ .wantMassQuery = cache.wantMassQuery,
+ .priority = cache.priority
+ };
});
}