diff options
author | julia <midnight@trainwit.ch> | 2024-05-18 15:38:33 +1000 |
---|---|---|
committer | julia <midnight@trainwit.ch> | 2024-06-16 03:53:00 +0000 |
commit | 0fa289f559708407ab4384739c0f24258c114b44 (patch) | |
tree | 33a4268a8a6951ee7bb816a9537413a051d1d752 /src/libstore/store-api.hh | |
parent | 4734ce7831daf6e7e976029017b1cc2e7e615f30 (diff) |
Harmonise the Store::queryPathInfoUncached interface
This:
- Consistently returns `nullptr` for a non-existent
store path, instead of a mix of `nullptr` and
throwing exceptions.
- If a store returns "bad" store paths in response
to a request (e.g. incorrect hash or name), don't
cache this result. This removes some duplication
of code at the cache-access layer of queryPathInfo()
checking this, and allows us to provide more
specific errors.
Part of #270.
Change-Id: I86612c6499b1a37ab872c712c2304d6a3ff19edb
Diffstat (limited to 'src/libstore/store-api.hh')
-rw-r--r-- | src/libstore/store-api.hh | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/libstore/store-api.hh b/src/libstore/store-api.hh index 397ebe759..de4dc3f03 100644 --- a/src/libstore/store-api.hh +++ b/src/libstore/store-api.hh @@ -399,6 +399,10 @@ public: protected: + /** + * Queries the path info without caching. + * Note to implementors: should return `nullptr` when the path is not found. + */ virtual std::shared_ptr<const ValidPathInfo> queryPathInfoUncached(const StorePath & path) = 0; virtual std::shared_ptr<const Realisation> queryRealisationUncached(const DrvOutput &) = 0; |