Template Class Operator#

Class Documentation#

template<typename DB>
class Operator#

Runtime counterpart of a node: the object actually doing the computation. Each socket of the node is bound to an item of the data bank. The runtime calls, in this order: pull (read inputs), poll (ready?), process (compute), push (write outputs).

Public Types

using bindings_t = std::map<socket_id_t, data_id_t>#

Public Functions

inline Operator(const std::string &name = "")#
inline Operator(const bindings_t &bindings, const std::string &name = "")#
virtual ~Operator() = default#
inline const std::string &get_name() const#
inline const bindings_t &get_bindings() const#
inline data_id_t get_binding(const socket_id_t &socket) const#
Returns:

The data ID bound to the socket, or null_data.

inline data_id_t get_binding(const char *socket) const#
inline void bind(const socket_id_t &socket, data_id_t id)#
virtual bool pull(const DB &db) = 0#
virtual bool poll() = 0#
virtual bool push(DB &db) = 0#
inline bool process()#

Protected Functions

virtual bool launch_process() = 0#