Nix 2.93.3
Lix: A modern, delicious implementation of the Nix package manager; unstable internal interfaces
Loading...
Searching...
No Matches
nix::LocalBinaryCacheStore Class Referencefinal
Inheritance diagram for nix::LocalBinaryCacheStore:
nix::BinaryCacheStore nix::Store nix::LogStore nix::Store

Public Member Functions

LocalBinaryCacheStoreConfigconfig () override
const LocalBinaryCacheStoreConfigconfig () const override
 LocalBinaryCacheStore (const std::string scheme, const Path &binaryCacheDir, LocalBinaryCacheStoreConfig config)
kj::Promise< Result< void > > init () override
std::string getUri () override
Public Member Functions inherited from nix::BinaryCacheStore
void upsertFile (const std::string &path, std::string &&data, const std::string &mimeType)
virtual std::optional< std::string > getFileContents (const std::string &path)
kj::Promise< Result< bool > > isValidPathUncached (const StorePath &path) override
kj::Promise< Result< std::shared_ptr< const ValidPathInfo > > > queryPathInfoUncached (const StorePath &path) override
kj::Promise< Result< std::optional< StorePath > > > queryPathFromHashPart (const std::string &hashPart) override
kj::Promise< Result< void > > addToStore (const ValidPathInfo &info, AsyncInputStream &narSource, RepairFlag repair, CheckSigsFlag checkSigs) override
kj::Promise< Result< StorePath > > addToStoreFromDump (AsyncInputStream &dump, std::string_view name, FileIngestionMethod method, HashType hashAlgo, RepairFlag repair, const StorePathSet &references) override
kj::Promise< Result< StorePath > > addToStoreRecursive (std::string_view name, const PreparedDump &source, HashType hashAlgo, RepairFlag repair) override
kj::Promise< Result< StorePath > > addToStoreFlat (std::string_view name, const Path &srcPath, HashType hashAlgo, RepairFlag repair) override
kj::Promise< Result< StorePath > > addTextToStore (std::string_view name, std::string_view s, const StorePathSet &references, RepairFlag repair) override
kj::Promise< Result< void > > registerDrvOutput (const Realisation &info) override
kj::Promise< Result< std::shared_ptr< const Realisation > > > queryRealisationUncached (const DrvOutput &) override
kj::Promise< Result< box_ptr< Source > > > narFromPath (const StorePath &path) override
ref< FSAccessorgetFSAccessor () override
kj::Promise< Result< void > > addSignatures (const StorePath &storePath, const StringSet &sigs) override
kj::Promise< Result< std::optional< std::string > > > getBuildLogExact (const StorePath &path) override
kj::Promise< Result< void > > addBuildLog (const StorePath &drvPath, std::string_view log) override
Public Member Functions inherited from nix::Store
virtual std::optional< AssociatedCredentialsassociatedCredentials () const
StorePath parseStorePath (std::string_view path) const
std::optional< StorePathmaybeParseStorePath (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, PathtoStorePath (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)
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< StorePathSet > > querySubstitutablePaths (const StorePathSet &paths)
virtual kj::Promise< Result< void > > querySubstitutablePathInfos (const StorePathCAMap &paths, SubstitutablePathInfos &infos)
virtual kj::Promise< Result< void > > addMultipleToStore (PathsSource &pathsToCopy, Activity &act, RepairFlag repair=NoRepair, CheckSigsFlag checkSigs=CheckSigs)
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< 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)
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 Path toRealPath (const Path &storePath)
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::LogStore
kj::Promise< Result< std::optional< std::string > > > getBuildLog (const StorePath &path)

Static Public Member Functions

static std::set< std::string > uriSchemes ()
Static Public Member Functions inherited from nix::LogStore
static LogStorerequire (Store &store)

Protected Member Functions

bool fileExists (const std::string &path) override
void upsertFile (const std::string &path, std::shared_ptr< std::basic_iostream< char > > istream, const std::string &mimeType) override
box_ptr< SourcegetFile (const std::string &path) override
kj::Promise< Result< StorePathSet > > queryAllValidPaths () override
kj::Promise< Result< std::optional< TrustedFlag > > > isTrustedClient () override
Protected Member Functions inherited from nix::BinaryCacheStore
 BinaryCacheStore (const BinaryCacheStoreConfig &config)
Protected Member Functions inherited from nix::Store
 Store (const StoreConfig &config)
void unsupported (const std::string &op)

Additional Inherited Members

Public Types inherited from nix::Store
using PathsSource
Static Public Attributes inherited from nix::Store
static constexpr const char * MissingName = "x"
Static Public Attributes inherited from nix::LogStore
static std::string operationName = "Build log storage and retrieval"
Protected Attributes inherited from nix::BinaryCacheStore
const std::string realisationsPrefix = "realisations"
Protected Attributes inherited from nix::Store
Sync< State, AsyncMutex > state
std::shared_ptr< NarInfoDiskCachediskCache
Stats< std::atomic > stats

Member Function Documentation

◆ config() [1/2]

const LocalBinaryCacheStoreConfig & nix::LocalBinaryCacheStore::config ( ) const
inlineoverridevirtual

Implements nix::BinaryCacheStore.

◆ config() [2/2]

LocalBinaryCacheStoreConfig & nix::LocalBinaryCacheStore::config ( )
inlineoverridevirtual

Implements nix::BinaryCacheStore.

◆ fileExists()

bool nix::LocalBinaryCacheStore::fileExists ( const std::string & path)
overrideprotectedvirtual

Implements nix::BinaryCacheStore.

◆ getFile()

box_ptr< Source > nix::LocalBinaryCacheStore::getFile ( const std::string & path)
inlineoverrideprotectedvirtual

Dump the contents of the specified file to a sink.

Implements nix::BinaryCacheStore.

◆ getUri()

std::string nix::LocalBinaryCacheStore::getUri ( )
inlineoverridevirtual

Implements nix::Store.

◆ init()

kj::Promise< Result< void > > nix::LocalBinaryCacheStore::init ( )
overridevirtual

Perform any necessary effectful operation to make the store up and running

Reimplemented from nix::BinaryCacheStore.

◆ isTrustedClient()

kj::Promise< Result< std::optional< TrustedFlag > > > nix::LocalBinaryCacheStore::isTrustedClient ( )
inlineoverrideprotectedvirtual
Returns
/ whether store trusts us.

std::nullopt means we do not know.

Note
This is the opposite of the StoreConfig::isTrusted store setting. That is about whether we trust the store.

Implements nix::Store.

◆ queryAllValidPaths()

kj::Promise< Result< StorePathSet > > nix::LocalBinaryCacheStore::queryAllValidPaths ( )
inlineoverrideprotectedvirtual

Query the set of all valid paths. Note that for some store backends, the name part of store paths may be replaced by 'x' (i.e. you'll get /nix/store/<hash>-x rather than /nix/store/<hash>-<name>). Use queryPathInfo() to obtain the full store path. FIXME: should return a set of std::variant<StorePath, HashPart> to get rid of this hack.

Reimplemented from nix::Store.

◆ upsertFile()

void nix::LocalBinaryCacheStore::upsertFile ( const std::string & path,
std::shared_ptr< std::basic_iostream< char > > istream,
const std::string & mimeType )
inlineoverrideprotectedvirtual

Implements nix::BinaryCacheStore.


The documentation for this class was generated from the following file:
  • lix/libstore/local-binary-cache-store.cc