|
Nix 2.93.3
Lix: A modern, delicious implementation of the Nix package manager; unstable internal interfaces
|
#include <indirect-root-store.hh>
Public Member Functions | |
| kj::Promise< Result< Path > > | addPermRoot (const StorePath &storePath, const Path &gcRoot) override final |
| virtual kj::Promise< Result< void > > | addIndirectRoot (const Path &path)=0 |
| Public Member Functions inherited from nix::LocalFSStore | |
| LocalFSStoreConfig & | config () override=0 |
| const LocalFSStoreConfig & | config () const override=0 |
| kj::Promise< Result< box_ptr< Source > > > | narFromPath (const StorePath &path) override |
| ref< FSAccessor > | getFSAccessor () override |
| virtual Path | getRealStoreDir () |
| Path | toRealPath (const Path &storePath) override |
| kj::Promise< Result< std::optional< std::string > > > | getBuildLogExact (const StorePath &path) override |
| Public Member Functions inherited from nix::Store | |
| virtual std::optional< AssociatedCredentials > | associatedCredentials () const |
| virtual kj::Promise< Result< void > > | init () |
| virtual std::string | getUri ()=0 |
| StorePath | parseStorePath (std::string_view path) const |
| std::optional< StorePath > | maybeParseStorePath (std::string_view path) const |
| std::string | printStorePath (const StorePath &path) const |
| StorePathSet | parseStorePathSet (const PathSet &paths) const |
| PathSet | printStorePathSet (const StorePathSet &path) const |
| std::string | showPaths (const StorePathSet &paths) |
| bool | isInStore (PathView path) const |
| bool | isStorePath (std::string_view path) const |
| std::pair< StorePath, Path > | toStorePath (PathView path) const |
| Path | followLinksToStore (std::string_view path) const |
| StorePath | followLinksToStorePath (std::string_view path) const |
| StorePath | makeStorePath (std::string_view type, std::string_view hash, std::string_view name) const |
| StorePath | makeStorePath (std::string_view type, const Hash &hash, std::string_view name) const |
| StorePath | makeOutputPath (std::string_view id, const Hash &hash, std::string_view name) const |
| StorePath | makeFixedOutputPath (std::string_view name, const FixedOutputInfo &info) const |
| StorePath | makeTextPath (std::string_view name, const TextInfo &info) const |
| StorePath | makeFixedOutputPathFromCA (std::string_view name, const ContentAddressWithReferences &ca) const |
| StorePath | computeStorePathForPathRecursive (std::string_view name, const PreparedDump &source) const |
| StorePath | computeStorePathForPathFlat (std::string_view name, const Path &srcPath) const |
| StorePath | computeStorePathForText (std::string_view name, std::string_view s, const StorePathSet &references) const |
| kj::Promise< Result< bool > > | isValidPath (const StorePath &path) |
| kj::Promise< Result< void > > | substitutePaths (const StorePathSet &paths) |
| virtual kj::Promise< Result< StorePathSet > > | queryValidPaths (const StorePathSet &paths, SubstituteFlag maybeSubstitute=NoSubstitute) |
| virtual kj::Promise< Result< StorePathSet > > | queryAllValidPaths () |
| kj::Promise< Result< ref< const ValidPathInfo > > > | queryPathInfo (const StorePath &path) |
| kj::Promise< Result< std::shared_ptr< const Realisation > > > | queryRealisation (const DrvOutput &) |
| virtual bool | pathInfoIsUntrusted (const ValidPathInfo &) |
| virtual bool | realisationIsUntrusted (const Realisation &) |
| virtual kj::Promise< Result< void > > | queryReferrers (const StorePath &path, StorePathSet &referrers) |
| virtual kj::Promise< Result< StorePathSet > > | queryValidDerivers (const StorePath &path) |
| virtual kj::Promise< Result< StorePathSet > > | queryDerivationOutputs (const StorePath &path) |
| virtual kj::Promise< Result< std::map< std::string, std::optional< StorePath > > > > | queryPartialDerivationOutputMap (const StorePath &path, Store *evalStore=nullptr) |
| virtual kj::Promise< Result< std::map< std::string, std::optional< StorePath > > > > | queryStaticPartialDerivationOutputMap (const StorePath &path) |
| kj::Promise< Result< OutputPathMap > > | queryDerivationOutputMap (const StorePath &path, Store *evalStore=nullptr) |
| virtual kj::Promise< Result< std::optional< StorePath > > > | queryPathFromHashPart (const std::string &hashPart)=0 |
| virtual kj::Promise< Result< StorePathSet > > | querySubstitutablePaths (const StorePathSet &paths) |
| virtual kj::Promise< Result< void > > | querySubstitutablePathInfos (const StorePathCAMap &paths, SubstitutablePathInfos &infos) |
| virtual kj::Promise< Result< void > > | addToStore (const ValidPathInfo &info, AsyncInputStream &narSource, RepairFlag repair=NoRepair, CheckSigsFlag checkSigs=CheckSigs)=0 |
| virtual kj::Promise< Result< void > > | addMultipleToStore (PathsSource &pathsToCopy, Activity &act, RepairFlag repair=NoRepair, CheckSigsFlag checkSigs=CheckSigs) |
| virtual kj::Promise< Result< StorePath > > | addToStoreRecursive (std::string_view name, const PreparedDump &source, HashType hashAlgo=HashType::SHA256, RepairFlag repair=NoRepair) |
| virtual kj::Promise< Result< StorePath > > | addToStoreFlat (std::string_view name, const Path &srcPath, HashType hashAlgo=HashType::SHA256, RepairFlag repair=NoRepair) |
| kj::Promise< Result< ValidPathInfo > > | addToStoreSlow (std::string_view name, const Path &srcPath, FileIngestionMethod method=FileIngestionMethod::Recursive, HashType hashAlgo=HashType::SHA256, std::optional< Hash > expectedCAHash={}) |
| virtual kj::Promise< Result< StorePath > > | addToStoreFromDump (AsyncInputStream &dump, std::string_view name, FileIngestionMethod method=FileIngestionMethod::Recursive, HashType hashAlgo=HashType::SHA256, RepairFlag repair=NoRepair, const StorePathSet &references=StorePathSet()) |
| virtual kj::Promise< Result< StorePath > > | addTextToStore (std::string_view name, std::string_view s, const StorePathSet &references, RepairFlag repair=NoRepair)=0 |
| virtual kj::Promise< Result< void > > | registerDrvOutput (const Realisation &output) |
| virtual kj::Promise< Result< void > > | registerDrvOutput (const Realisation &output, CheckSigsFlag checkSigs) |
| virtual kj::Promise< Result< void > > | buildPaths (const std::vector< DerivedPath > &paths, BuildMode buildMode=bmNormal, std::shared_ptr< Store > evalStore=nullptr) |
| virtual kj::Promise< Result< std::vector< KeyedBuildResult > > > | buildPathsWithResults (const std::vector< DerivedPath > &paths, BuildMode buildMode=bmNormal, std::shared_ptr< Store > evalStore=nullptr) |
| virtual kj::Promise< Result< BuildResult > > | buildDerivation (const StorePath &drvPath, const BasicDerivation &drv, BuildMode buildMode=bmNormal) |
| virtual kj::Promise< Result< void > > | ensurePath (const StorePath &path) |
| virtual kj::Promise< Result< void > > | addTempRoot (const StorePath &path) |
| kj::Promise< Result< std::string > > | makeValidityRegistration (const StorePathSet &paths, bool showDerivers, bool showHash) |
| kj::Promise< Result< JSON > > | pathInfoToJSON (const StorePathSet &storePaths, bool includeImpureInfo, bool showClosureSize, Base hashBase=Base::Base32, AllowInvalidFlag allowInvalid=DisallowInvalid) |
| kj::Promise< Result< std::pair< uint64_t, uint64_t > > > | getClosureSize (const StorePath &storePath) |
| virtual kj::Promise< Result< void > > | optimiseStore () |
| virtual kj::Promise< Result< bool > > | verifyStore (bool checkContents, RepairFlag repair=NoRepair) |
| virtual kj::Promise< Result< void > > | repairPath (const StorePath &path) |
| virtual kj::Promise< Result< void > > | addSignatures (const StorePath &storePath, const StringSet &sigs) |
| kj::Promise< Result< Derivation > > | derivationFromPath (const StorePath &drvPath) |
| kj::Promise< Result< Derivation > > | readDerivation (const StorePath &drvPath) |
| kj::Promise< Result< Derivation > > | readInvalidDerivation (const StorePath &drvPath) |
| virtual kj::Promise< Result< void > > | computeFSClosure (const StorePathSet &paths, StorePathSet &out, bool flipDirection=false, bool includeOutputs=false, bool includeDerivers=false) |
| kj::Promise< Result< void > > | computeFSClosure (const StorePath &path, StorePathSet &out, bool flipDirection=false, bool includeOutputs=false, bool includeDerivers=false) |
| virtual kj::Promise< Result< void > > | queryMissing (const std::vector< DerivedPath > &targets, StorePathSet &willBuild, StorePathSet &willSubstitute, StorePathSet &unknown, uint64_t &downloadSize, uint64_t &narSize) |
| kj::Promise< Result< StorePaths > > | topoSortPaths (const StorePathSet &paths) |
| kj::Promise< Result< void > > | exportPaths (const StorePathSet &paths, Sink &sink) |
| kj::Promise< Result< void > > | exportPath (const StorePath &path, Sink &sink) |
| kj::Promise< Result< StorePaths > > | importPaths (Source &source, CheckSigsFlag checkSigs=CheckSigs) |
| kj::Promise< Result< Stats<> > > | getStats () |
| kj::Promise< Result< StorePathSet > > | exportReferences (const StorePathSet &storePaths, const StorePathSet &inputPaths) |
| kj::Promise< Result< std::optional< StorePath > > > | getBuildDerivationPath (const StorePath &) |
| kj::Promise< void > | clearPathInfoCache () |
| virtual kj::Promise< Result< void > > | connect () |
| virtual kj::Promise< Result< unsigned int > > | getProtocol () |
| virtual kj::Promise< Result< std::optional< TrustedFlag > > > | isTrustedClient ()=0 |
| Path | toRealPath (const StorePath &storePath) |
| virtual kj::Promise< Result< void > > | setOptions () |
| virtual kj::Promise< Result< std::optional< std::string > > > | getVersion () |
| Public Member Functions inherited from nix::GcStore | |
| virtual kj::Promise< Result< Roots > > | findRoots (bool censor)=0 |
| virtual kj::Promise< Result< void > > | collectGarbage (const GCOptions &options, GCResults &results)=0 |
| Public Member Functions inherited from nix::LogStore | |
| kj::Promise< Result< std::optional< std::string > > > | getBuildLog (const StorePath &path) |
| virtual kj::Promise< Result< void > > | addBuildLog (const StorePath &path, std::string_view log)=0 |
Static Public Attributes | |
| static std::string | operationName = "Indirect GC roots registration" |
| Static Public Attributes inherited from nix::LocalFSStore | |
| static std::string | operationName = "Local Filesystem Store" |
| static const std::string | drvsLogDir = "drvs" |
| Static Public Attributes inherited from nix::Store | |
| static constexpr const char * | MissingName = "x" |
| Static Public Attributes inherited from nix::GcStore | |
| static std::string | operationName = "Garbage collection" |
| Static Public Attributes inherited from nix::LogStore | |
| static std::string | operationName = "Build log storage and retrieval" |
Additional Inherited Members | |
| Public Types inherited from nix::Store | |
| using | PathsSource |
| Static Public Member Functions inherited from nix::LogStore | |
| static LogStore & | require (Store &store) |
| Protected Member Functions inherited from nix::Store | |
| Store (const StoreConfig &config) | |
| virtual kj::Promise< Result< bool > > | isValidPathUncached (const StorePath &path) |
| virtual kj::Promise< Result< std::shared_ptr< const ValidPathInfo > > > | queryPathInfoUncached (const StorePath &path)=0 |
| virtual kj::Promise< Result< std::shared_ptr< const Realisation > > > | queryRealisationUncached (const DrvOutput &)=0 |
| void | unsupported (const std::string &op) |
| Protected Attributes inherited from nix::Store | |
| Sync< State, AsyncMutex > | state |
| std::shared_ptr< NarInfoDiskCache > | diskCache |
| Stats< std::atomic > | stats |
Mix-in class for implementing permanent roots as a pair of a direct (strong) reference and indirect weak reference to the first reference.
See methods for details on the operations it represents.
|
pure virtual |
Add an indirect root, which is a weak reference to the user-facing symlink created by addPermRoot().
| path | user-facing and user-controlled symlink to a store path. |
The form this weak-reference takes is implementation-specific.
Implemented in nix::LocalStore, and nix::UDSRemoteStore.
|
finaloverridevirtual |
Implementation of LocalFSStore::addPermRoot where the permanent root is a pair of
The garbage collector will automatically remove the indirect root when it finds that the symlink has disappeared.
The implementation of this method is concrete, but it delegates to addIndirectRoot() which is abstract.
Implements nix::LocalFSStore.