index
:
guix
koszko
koszko-scripts
Wojtek's customized Guix
about
summary
refs
log
tree
commit
diff
log msg
author
committer
range
#pragma once #include "sqlite.hh" #include <string> #include <unordered_set> #include "pathlocks.hh" #include "store-api.hh" #include "util.hh" namespace nix { /* Nix store and database schema version. Version 1 (or 0) was Nix <= 0.7. Version 2 was Nix 0.8 and 0.9. Version 3 is Nix 0.10. Version 4 is Nix 0.11. Version 5 is Nix 0.12-0.16. Version 6 is Nix 1.0. Version 7 is Nix 1.3. Guix has always used version 7. */ const int nixSchemaVersion = 7; extern string drvsLogDir; struct Derivation; struct OptimiseStats { unsigned long filesLinked; unsigned long long bytesFreed; unsigned long long blocksFreed; OptimiseStats() { filesLinked = 0; bytesFreed = blocksFreed = 0; } }; class LocalStore : public StoreAPI { private: /* The currently running substituter or empty. */ std::shared_ptr<Agent> runningSubstituter; /* Ensure the substituter is running and return it. */ std::shared_ptr<Agent> substituter(); Path linksDir; public: /* Initialise the local store, upgrading the schema if necessary. */ LocalStore(bool reserveSpace = true); ~LocalStore(); /* Implementations of abstract store API methods. */ bool isValidPath(const Path & path); PathSet queryValidPaths(const PathSet & paths); PathSet queryAllValidPaths(); ValidPathInfo queryPathInfo(const Path & path); Hash queryPathHash(const Path & path); void queryReferences(const Path & path, PathSet & references); void queryReferrers(const Path & path, PathSet & referrers); Path queryDeriver(const Path & path); PathSet queryValidDerivers(const Path & path); PathSet queryDerivationOutputs(const Path & path); StringSet queryDerivationOutputNames(const Path & path); Path queryPathFromHashPart(const string & hashPart); PathSet querySubstitutablePaths(const PathSet & paths); void querySubstitutablePathInfos(PathSet & paths, SubstitutablePathInfos & infos); void querySubstitutablePathInfos(const PathSet & paths, SubstitutablePathInfos & infos); Pat