Class Executor

Derived Type

class Executor

Base class for all executors.

An Executor that manages the execution of a Fragment on a physical node. The framework provides a default Executor that uses a GXF Scheduler to execute an Application.

Subclassed by holoscan::gxf::GXFExecutor

Public Functions

Executor() = delete
inline explicit Executor(Fragment *fragment)

Construct a new Executor object.

virtual ~Executor() = default
inline virtual void run(Graph &graph)
inline Fragment *fragment()

Get a pointer to Fragment object.

inline void context(void *context)

Set the context.

inline void *context()

Get the context.

inline void context_uint64(uint64_t context)
inline uint64_t context_uint64()

Protected Functions

inline virtual bool initialize_operator(Operator *op)

Initialize the given operator.

This method is called by Operator::initialize() to initialize the operator.

Depending on the type of the operator, this method may be overridden to initialize the operator. For example, the default executor (GXFExecutor) initializes the operator using the GXF API and sets the operator’s ID to the ID of the GXF codelet.

inline virtual bool add_receivers(const std::shared_ptr<Operator> &op, const std::string &receivers_name, std::set<std::string, std::less<>> &input_labels, std::vector<holoscan::IOSpec*> &iospec_vector)

Add the receivers as input ports of the given operator.

This method is to be called by the Fragment::add_flow() method to support for the case where the destination input port label points to the parameter name of the downstream operator, and the parameter type is ‘std::vector<holoscan::IOSpec*>’. This finds a parameter with with ‘std::vector<holoscan::IOSpec*>’ type and create a new input port with a specific label (‘<parameter name>:<index>’. e.g, ‘receivers:0’).


Protected Attributes

Fragment *fragment_ = nullptr
void *context_ = nullptr


friend class Fragment
friend class Operator

© Copyright 2022, NVIDIA. Last updated on Mar 20, 2023.