Go to the documentation of this file.
22 #ifndef OUTPUT_ENGINE_NODE_H
23 #define OUTPUT_ENGINE_NODE_H
25 #include <boost/python.hpp>
47 unsigned int computePeriod = 1) :
49 _engineName(engineName)
53 {
return "ToEngine"; }
60 std::lock_guard<std::mutex> lock(_dataMutex);
63 for(
auto &[
id, dataPackRawPtr] : _dataStore)
74 std::lock_guard<std::mutex> lock(_dataMutex);
79 else if(_engineName != (*data)->engineName())
80 NRPLogger::info(
"In OutputEngineNode '" + this->_engineName +
"'. Received datapack with Id '" + (*data)->name() +
81 "' linked to Engine '" + (*data)->engineName() +
"'. This node only accept datapacks linked to Engine '" +
82 this->_engineName +
"'. Please check your graph configuration ");
85 _dataStore[(*data)->name()] = (*data)->clone();
88 void sendBatchMsg(
const std::string& ,
const std::vector<const DataPackInterfacePtr*>& )
override
96 std::string _engineName;
98 std::mutex _dataMutex;
100 std::map<std::string, DataPackInterface*> _dataStore;
111 "anonymous_port"+std::to_string(port_n++), false, 1),
122 std::string _engineName;
124 static size_t port_n;
128 #endif //OUTPUT_ENGINE_NODE_H
std::set< std::shared_ptr< const DataPackInterface >, DataPackPointerComparator > datapacks_set_t
Definition: datapack_interface.h:219
DataPackInterface::const_shared_ptr DataPackInterfaceConstSharedPtr
Definition: datapack_interface.h:180
OutputEngineNode(const std::string &id, const std::string &engineName, bool publishFromCache=false, unsigned int computePeriod=1)
Definition: output_node.h:45
std::string _id
Definition: output_edge.h:170
Definition: computational_node_policies.h:47
bool publishFromCache()
Definition: output_node.h:109
const std::string & id() const
Returns the node 'id'.
Definition: computational_node.h:57
Definition: output_node.h:105
static void info(const FormatString &fmt, const Args &...args)
NRP logging function with message formatting for info level.
Definition: nrp_logger.h:138
OutputEngineNode * makeNewNode() override
Definition: output_node.h:117
Helper class used to implement Python output edge decorators.
Definition: output_edge.h:36
Implementation of an output node in the computation graph.
Definition: output_node.h:38
void sendSingleMsg(const std::string &, const DataPackInterfacePtr *data) override
Definition: output_node.h:72
@ SERIES
Definition: computational_node_policies.h:51
static EXCEPTION logCreate(LOG_EXCEPTION_T &exception, const std::string &msg, NRPLogger::spdlog_out_fcn_t spdlogCall=NRPLogger::critical)
Definition: nrp_exceptions.h:73
datapacks_set_t getDataPacks()
Definition: output_node.h:58
Interface to datapacks.
Definition: datapack_interface.h:89
void sendBatchMsg(const std::string &, const std::vector< const DataPackInterfacePtr * > &) override
Definition: output_node.h:88
PublishFormatPolicy
Defines how output nodes send stored msgs.
Definition: computational_node_policies.h:50
Base class implementing a node in the computational graph.
Definition: computational_node.h:31
std::string typeStr() const override
Returns the node 'type' as a string.
Definition: output_node.h:52
Output node used to connect the computational graph with an EngineClient.
Definition: output_node.h:37
OutputEngineEdge(const std::string &keyword, const std::string &address)
Definition: output_node.h:109