+ std::string get_command() const override;
+ void start() override;
+ Status check() override;
+ Status wait() override;
+private:
+ Status do_wait(bool);
+
+public:
+ /// Redirect stdin from a file. Has no effect after the task is started.
+ void set_stdin(const Msp::FS::Path &);
+
+ /// Sets destination for stdout. Has no effect after the task is started.
+ void set_stdout(StreamAction);
+
+ /// Redirect stdout to a file. Has no effect after the task is started.
+ void set_stdout(const Msp::FS::Path &);
+
+ /// Sets destination for stderr. Has no effect after the task is started.
+ void set_stderr(StreamAction);
+
+ /** Returns captured output, if any. This may be called while the task is
+ still running, but it will always return all output. */