Go to the documentation of this file.
   47                int maxPortConnections = 0,
 
   48                unsigned int computePeriod = 1) :
 
   59             NRPLogger::debug(
"In node \"" + 
id + 
"\". When policy publish 'FROM_CACHE' is used and/or period is not set to 1, " 
   60                                                  "the node can only accept one connection per port. 'maxPortConnections'" 
   75             std::string s = 
"Node '" + this->
id() + 
"' is already configured. Ignoring request to get or register port '" + 
id + 
"'.";
 
   82                     "' under a different data type");
 
   85             using std::placeholders::_1;
 
  101             NRPLogger::info(
"In node \"" + this->
id() + 
"\". Request to set compute period to " + std::to_string(computePeriod) + 
"rejected " 
  102                                                  "because the node node ports can receive more than one connections");
 
  142     void storeMsg(
const std::string& 
id,
const DATA* data)
 
  173     virtual void sendSingleMsg(
const std::string& 
id, 
const DATA* data) = 0;
 
  178     virtual void sendBatchMsg(
const std::string& 
id, 
const std::vector<const DATA*>& data) = 0;
 
  207 #endif //OUTPUT_NODE_H 
  
 
int _maxPortConnections
Maximum number of subscriptions of ports in this node.
Definition: output_node.h:189
 
bool _isConfigured
true if the node has been configured, false otherwise
Definition: output_node.h:191
 
bool _publishFromCache
Publish frequency policy used by this node.
Definition: output_node.h:187
 
virtual void sendSingleMsg(const std::string &id, const DATA *data)=0
Sends out a single msg, to be implemented by derived classes.
 
unsigned int _computePeriod
Property specifying the number of loops that passes between executions of this node.
Definition: output_node.h:198
 
@ Output
Definition: computational_node.h:37
 
bool publishFromCache()
Definition: output_node.h:109
 
const std::string & id() const
Returns the node 'id'.
Definition: computational_node.h:57
 
static void info(const FormatString &fmt, const Args &...args)
NRP logging function with message formatting for info level.
Definition: nrp_logger.h:138
 
void sendMsgs(const std::string &id)
Sends all msgs stored in _storedMsgs['id'] and clears the storage.
Definition: output_node.h:157
 
Implementation of an output node in the computation graph.
Definition: output_node.h:38
 
InputPort< T_IN, DATA > * getOrRegisterInput(const std::string &id)
Gets or register input port to this node and returns a pointer to it.
Definition: output_node.h:70
 
OutputNode(const std::string &id, OutputNodePolicies::PublishFormatPolicy publishFormatPolicy=OutputNodePolicies::PublishFormatPolicy::SERIES, bool publishFromCache=false, int maxPortConnections=0, unsigned int computePeriod=1)
Constructor.
Definition: output_node.h:44
 
void setComputePeriod(unsigned int computePeriod)
Definition: output_node.h:98
 
void storeMsg(const std::string &id, const DATA *data)
Stores a new msg in _storedMsgs['id'].
Definition: output_node.h:142
 
unsigned int getComputePeriod()
Definition: output_node.h:95
 
friend class ComputationalNodes_OUTPUT_NODE_Test
Definition: output_node.h:202
 
@ SERIES
Definition: computational_node_policies.h:51
 
virtual bool doCompute() const
Tells if this node should be executed in this graph execution cycle, used in some graph execution mod...
Definition: computational_node.h:96
 
static EXCEPTION logCreate(LOG_EXCEPTION_T &exception, const std::string &msg, NRPLogger::spdlog_out_fcn_t spdlogCall=NRPLogger::critical)
Definition: nrp_exceptions.h:73
 
friend class ComputationalGraphPythonNodes_PYTHON_DECORATORS_BASIC_Test
Definition: output_node.h:203
 
std::map< std::string, std::shared_ptr< Port > > _inputPorts
List of ports owned by this node.
Definition: output_node.h:181
 
virtual bool doCompute() const override final
Tells if this node should be executed in this graph execution cycle, used in some graph execution mod...
Definition: output_node.h:112
 
port
Definition: python_json_engine.py:197
 
virtual void sendBatchMsg(const std::string &id, const std::vector< const DATA * > &data)=0
Sends out a vector of msg as a single batch, to be implemented by derived classes.
 
virtual void compute() override final
Requests the node to execute its computation.
Definition: output_node.h:127
 
unsigned int _nLoop
Variable counting the number of times this nodes has been asked to execute (1 per loop)
Definition: output_node.h:200
 
void configure() override
Configures the node making it ready to execute 'compute'.
Definition: output_node.h:117
 
OutputNodePolicies::PublishFormatPolicy _publishFormatPolicy
Send policy used by this node.
Definition: output_node.h:185
 
static void debug(const FormatString &fmt, const Args &...args)
NRP logging function with message formatting for debug level.
Definition: nrp_logger.h:127
 
std::map< std::string, std::vector< const DATA * > > _storedMsgs
List of msgs stored in this node.
Definition: output_node.h:183
 
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
 
void graphCycleStartCB() override final
Function called by the Computational Graph at the beginning of a new execution cycle.
Definition: output_node.h:136