41#include <StormByte/buffer/sink.hxx>
42#include <StormByte/logger/log.hxx>
48#include <condition_variable>
162 std::condition_variable& Wake() noexcept;
177 inline const std::shared_ptr<class
Plan>&
Plan() const noexcept {
221 virtual
bool Ready() const noexcept;
230 void Stop() noexcept;
239 virtual std::
size_t InputCeiling() const noexcept;
254 bool Failed() const noexcept;
260 const std::optional<std::
string>& Error() const noexcept;
271 void Fail(std::
string reason) noexcept;
313 void Emit(
Item::PointerType item) noexcept;
324 Item::PointerType CloneItem(const
Item& item) const noexcept;
329 void Wait() noexcept;
337 void Launch() noexcept;
348 void Halt() noexcept;
361 explicit Join(
Step& step)
noexcept: m_step(step) {}
378 bool Stopping() const noexcept;
384 void RecordWork(std::int64_t microseconds) noexcept;
390 std::int64_t LastWork() const noexcept;
395 void DumpWork() noexcept;
401 Backend::Pipeline::Host& Face() noexcept;
410 void Mount(std::unique_ptr<Backend::Pipeline::Pumper> pumper,
411 std::unique_ptr<Backend::Pipeline::Worker> worker) noexcept;
427 virtual std::
string Label() const noexcept;
440 virtual
void Log(
StormByte::Logger::Level level, std::string_view message) noexcept;
452 std::condition_variable m_wake;
453 std::unique_ptr<Backend::Pipeline::Pipe> m_pipe;
460 Backend::Pipeline::Pipe& pipe() noexcept;
466 const Backend::Pipeline::Pipe& pipe() const noexcept;
474 void CloseHoppers() noexcept;
476 std::unique_ptr<Surface> m_surface;
477 std::unique_ptr<Backend::Pipeline::Pumper> m_pumper;
478 std::shared_ptr<class
Plan> m_plan;
480 std::optional<std::
string> m_error;
482 std::uint64_t m_workN;
483 std::int64_t m_workMin;
484 std::int64_t m_workMax;
485 std::int64_t m_lastWork;
#define STORMBYTE_MULTIMEDIA_PUBLIC
Imported symbol.
Definition visibility.h:47