#include <drv-output-substitution-goal.hh>
Public Types | |
typedef void(DrvOutputSubstitutionGoal::* | GoalState) () |
![]() | |
enum | ExitCode { ecBusy , ecSuccess , ecFailed , ecNoSubstituters , ecIncompleteClosure } |
using | handle_type = std::coroutine_handle<promise_type> |
Public Member Functions | |
DrvOutputSubstitutionGoal (const DrvOutput &id, Worker &worker, RepairFlag repair=NoRepair, std::optional< ContentAddress > ca=std::nullopt) | |
Co | init () override |
Co | realisationFetched (std::shared_ptr< const Realisation > outputInfo, nix::ref< nix::Store > sub) |
void | timedOut (Error &&ex) override |
std::string | key () override |
void | handleEOF (Descriptor fd) override |
JobCategory | jobCategory () const override |
Hint for the scheduler, which concurrency limit applies. | |
![]() | |
Co | init_wrapper () |
Done | amDone (ExitCode result, std::optional< Error > ex={}) |
virtual void | cleanup () |
BuildResult | getBuildResult (const DerivedPath &) const |
Goal (Worker &worker, DerivedPath path) | |
void | work () |
void | addWaitee (GoalPtr waitee) |
virtual void | waiteeDone (GoalPtr waitee, ExitCode result) |
virtual void | handleChildOutput (Descriptor fd, std::string_view data) |
void | trace (std::string_view s) |
std::string | getName () const |
Public Attributes | |
GoalState | state |
![]() | |
Worker & | worker |
Goals | waitees |
WeakGoals | waiters |
size_t | nrFailed = 0 |
size_t | nrNoSubstituters = 0 |
size_t | nrIncompleteClosure = 0 |
std::string | name |
ExitCode | exitCode = ecBusy |
std::optional< Co > | top_co |
std::optional< Error > | ex |
Additional Inherited Members | |
![]() | |
BuildResult | buildResult |
Substitution of a derivation output. This is done in three steps:
|
overridevirtual |
Reimplemented from nix::Goal.
|
overridevirtual |
The entry point for the goal
Implements nix::Goal.
|
inlineoverridevirtual |
|
overridevirtual |
Implements nix::Goal.
|
inlineoverridevirtual |