NRP Core  1.4.1
InputEdge< T_IN, T_OUT, INPUT_CLASS > Class Template Referenceabstract

Helper template class used to implement Python input edge decorators. More...

#include <input_edge.h>

Inheritance diagram for InputEdge< T_IN, T_OUT, INPUT_CLASS >:
InputClockEdge InputDummyEdge InputEngineEdge InputIterationEdge InputMQTTEdge< MSG_TYPE > InputMQTTEdge< DataPack< MSG_TYPE > > InputROSEdge< MSG_TYPE > InputSpinnakerEdge

Public Member Functions

 InputEdge ()=delete
 
 InputEdge (std::string keyword, std::string id, std::string port, InputNodePolicies::MsgPublishPolicy msgPublishPolicy, InputNodePolicies::MsgCachePolicy msgCachePolicy)
 Constructor. More...
 
boost::python::object pySetup (const boost::python::object &obj)
 call function in associated Python decorator More...
 

Protected Member Functions

void registerEdgePythonFN (INPUT_CLASS *iNode, std::shared_ptr< PythonFunctionalNode > &pyFn)
 registers an edge between iNode and pyFn. PythonFunctionalNode case More...
 
void registerEdgeFNBase (INPUT_CLASS *iNode, std::shared_ptr< FunctionalNodeBase > &pyFn)
 registers an edge between iNode and pyFn. FunctionalNodeBase case More...
 
virtual INPUT_CLASS * makeNewNode ()=0
 

Protected Attributes

std::string _keyword
 
std::string _id
 
std::string _port
 
InputNodePolicies::MsgPublishPolicy _msgPublishPolicy
 
InputNodePolicies::MsgCachePolicy _msgCachePolicy
 

Detailed Description

template<class T_IN, class T_OUT, INPUT_C< T_IN > INPUT_CLASS>
class InputEdge< T_IN, T_OUT, INPUT_CLASS >

Helper template class used to implement Python input edge decorators.

Constructor & Destructor Documentation

◆ InputEdge() [1/2]

template<class T_IN , class T_OUT , INPUT_C< T_IN > INPUT_CLASS>
InputEdge< T_IN, T_OUT, INPUT_CLASS >::InputEdge ( )
delete

◆ InputEdge() [2/2]

template<class T_IN , class T_OUT , INPUT_C< T_IN > INPUT_CLASS>
InputEdge< T_IN, T_OUT, INPUT_CLASS >::InputEdge ( std::string  keyword,
std::string  id,
std::string  port,
InputNodePolicies::MsgPublishPolicy  msgPublishPolicy,
InputNodePolicies::MsgCachePolicy  msgCachePolicy 
)
inline

Constructor.

Member Function Documentation

◆ makeNewNode()

template<class T_IN , class T_OUT , INPUT_C< T_IN > INPUT_CLASS>
virtual INPUT_CLASS* InputEdge< T_IN, T_OUT, INPUT_CLASS >::makeNewNode ( )
protectedpure virtual

It instantiates a new node of type INPUT_CLASS

To be implemented by any final class derived from this template class

Implemented in DPInputMQTTEdge< MSG_TYPE >, InputMQTTEdge< MSG_TYPE >, InputMQTTEdge< DataPack< MSG_TYPE > >, InputSpinnakerEdge, InputEngineEdge, InputROSEdge< MSG_TYPE >, InputIterationEdge, InputClockEdge, and InputDummyEdge.

◆ pySetup()

template<class T_IN , class T_OUT , INPUT_C< T_IN > INPUT_CLASS>
boost::python::object InputEdge< T_IN, T_OUT, INPUT_CLASS >::pySetup ( const boost::python::object &  obj)
inline

call function in associated Python decorator

It creates and registers an input node. Afterwards add a port to it and registers an edge to 'obj'. 'obj' is expected to be a Python object wrapping a Functional Node

◆ registerEdgeFNBase()

template<class T_IN , class T_OUT , INPUT_C< T_IN > INPUT_CLASS>
void InputEdge< T_IN, T_OUT, INPUT_CLASS >::registerEdgeFNBase ( INPUT_CLASS *  iNode,
std::shared_ptr< FunctionalNodeBase > &  pyFn 
)
inlineprotected

registers an edge between iNode and pyFn. FunctionalNodeBase case

◆ registerEdgePythonFN()

template<class T_IN , class T_OUT , INPUT_C< T_IN > INPUT_CLASS>
void InputEdge< T_IN, T_OUT, INPUT_CLASS >::registerEdgePythonFN ( INPUT_CLASS *  iNode,
std::shared_ptr< PythonFunctionalNode > &  pyFn 
)
inlineprotected

registers an edge between iNode and pyFn. PythonFunctionalNode case

Member Data Documentation

◆ _id

template<class T_IN , class T_OUT , INPUT_C< T_IN > INPUT_CLASS>
std::string InputEdge< T_IN, T_OUT, INPUT_CLASS >::_id
protected

◆ _keyword

template<class T_IN , class T_OUT , INPUT_C< T_IN > INPUT_CLASS>
std::string InputEdge< T_IN, T_OUT, INPUT_CLASS >::_keyword
protected

◆ _msgCachePolicy

template<class T_IN , class T_OUT , INPUT_C< T_IN > INPUT_CLASS>
InputNodePolicies::MsgCachePolicy InputEdge< T_IN, T_OUT, INPUT_CLASS >::_msgCachePolicy
protected

◆ _msgPublishPolicy

template<class T_IN , class T_OUT , INPUT_C< T_IN > INPUT_CLASS>
InputNodePolicies::MsgPublishPolicy InputEdge< T_IN, T_OUT, INPUT_CLASS >::_msgPublishPolicy
protected

◆ _port

template<class T_IN , class T_OUT , INPUT_C< T_IN > INPUT_CLASS>
std::string InputEdge< T_IN, T_OUT, INPUT_CLASS >::_port
protected

The documentation for this class was generated from the following file: