16#ifndef BIFROSTGRAPH_EXECUTOR_JOB_H
17#define BIFROSTGRAPH_EXECUTOR_JOB_H
22#include <BifrostGraph/Executor/internal/ExecutorExport.h>
23#include <BifrostGraph/Executor/internal/PropagateConstPtr.h>
40class IRestrictedJobServices;
52class BIFROSTGRAPH_EXECUTOR_SHARED_DECL
Job final {
55 struct BIFROSTGRAPH_EXECUTOR_SHARED_DECL
Input final {
65 struct BIFROSTGRAPH_EXECUTOR_SHARED_DECL
Output final {
97 explicit Job(Private::IJobOwner& owner)
noexcept;
124 bool isValid() const noexcept;
129 static
Job& getInvalid() noexcept;
153 void enableRuntimeLogging(
bool enable) noexcept;
158 bool isRuntimeLoggingEnabled() const noexcept;
170 const
Inputs& getInputs() const noexcept;
252 const Private::IRestrictedJobServices& getRestrictedServices() const noexcept;
253 Private::IRestrictedJobServices& getRestrictedServices() noexcept;
261 Job& operator=(const
Job&) = delete;
262 Job& operator=(
Job&&) = delete;
266 Internal::PropagateConstPtr<Private::JobImpl, Internal::Owned::kYes> m_impl;
267 static
Job g_invalid;
Provide factory functions for Executor core classes.
BifrostGraph Executor TypeTranslation.
#define EXECUTOR_DECLARE_MAKE_OWNER_FRIENDSHIP()
Helper macro to declare friend the makeOwner<> factory functions.
JobExecutionMode
Modes for job execution.
Uninitialized
Tag for explicitly specifying that a constructor should not initialize any data members,...
JobExecutionStatus
Status of job execution.
Generic value class that allows for storage of a value of any type.
Define a Amino array of elements of type T.
The string class used by Amino.
The GraphContainer class that loads a graph to be executed and manages the Jobs that execute this gra...
The Job class that executes a graph with inputs/outputs coming/going from/to host.
~Job() noexcept
Destructor.
Amino::String name
The input's name.
Amino::String typeName
The fully qualified name of the input's data type.
Amino::Any defaultValue
The input's default value (coming from the graph).
bool isJobPort
Whether or not the input is a Job port.
Amino::String typeName
The fully qualified name of the output's data type.
bool isTerminal
Whether or not the output is a Terminal.
bool isEnabled
Whether or not this output is enabled.
Amino::String name
The output's name.
A Job Terminal State descriptor.
bool enabled
Whether or not this terminal is enabled.
Amino::String name
The fully qualified name of the terminal.
BifrostGraph Executor TypeTranslation.
The Workspace is the central element of the BifrostGraph Executor.