Non-abstract, non-templated base class for the FunctionalNode class. More...
#include <functional_node.h>
Public Member Functions | |
FunctionalNodeBase (const std::string &id) | |
virtual Port * | getInputById (const std::string &) |
Returns an InputPort by id. More... | |
virtual Port * | getOutputById (const std::string &) |
Returns an OutputPort by id. More... | |
void | configure () override |
Configures the node making it ready to execute 'compute'. More... | |
void | compute () override |
Requests the node to execute its computation. More... | |
void | registerF2FEdge (const std::string &i_port, const std::string &address) |
Request the registration of an edge between an output port in another functional node an i_port input port in this node. More... | |
![]() | |
ComputationalNode ()=delete | |
virtual | ~ComputationalNode ()=default |
ComputationalNode (std::string id, NodeType type) | |
Constructor. More... | |
const std::string & | id () const |
Returns the node 'id'. More... | |
NodeType | type () const |
Returns the node 'type'. More... | |
virtual std::string | typeStr () const |
Returns the node 'type' as a string. More... | |
void | setVisited (bool visited) |
Sets a value for the node 'visited' property, used for graph traversing. More... | |
bool | isVisited () const |
Returns true if the node has been marked as visited, false otherwise. More... | |
void | setDoCompute (bool doCompute) |
Sets a value for the node 'doCompute' property, used in some graph execution modes. More... | |
virtual bool | doCompute () const |
Tells if this node should be executed in this graph execution cycle, used in some graph execution modes. More... | |
Protected Member Functions | |
void | graphLoadedCB () override |
Function called by the Computational Graph to nodes that the graph has been completely loaded. More... | |
virtual void | createEdge (const std::string &, Port *) |
Create an edge in the graph between this node 'port_id' input port and o_port. More... | |
void | clearEdgeRequests () |
![]() | |
virtual void | graphCycleStartCB () |
Function called by the Computational Graph at the beginning of a new execution cycle. More... | |
Friends | |
class | ComputationalGraphPythonNodes_F2F_EDGES_Test |
Additional Inherited Members | |
![]() | |
enum | NodeType { Input, Output, Functional } |
All the possible node types. More... | |
![]() | |
static std::pair< std::string, std::string > | parseNodeAddress (const std::string &address, bool hasPort=true) |
Parses a computational node address returning the node id and the port (if any) contained in the address. More... | |
![]() | |
const static std::map< NodeType, std::string > | nodeTypeStr |
Non-abstract, non-templated base class for the FunctionalNode class.
Its existence is necessary for storing and manipulating functional nodes in the creation of Computaional Graph edges
|
inline |
|
inlineprotected |
|
inlineoverridevirtual |
Requests the node to execute its computation.
Implements ComputationalNode.
Reimplemented in FunctionalNode< std::tuple< INPUT_TYPES... >, std::tuple< OUTPUT_TYPES... > >.
|
inlineoverridevirtual |
Configures the node making it ready to execute 'compute'.
Implements ComputationalNode.
Reimplemented in FunctionalNode< std::tuple< INPUT_TYPES... >, std::tuple< OUTPUT_TYPES... > >.
|
inlineprotectedvirtual |
Create an edge in the graph between this node 'port_id' input port and o_port.
Reimplemented in FunctionalNode< std::tuple< INPUT_TYPES... >, std::tuple< OUTPUT_TYPES... > >.
|
inlinevirtual |
Returns an InputPort by id.
Reimplemented in FunctionalNode< std::tuple< INPUT_TYPES... >, std::tuple< OUTPUT_TYPES... > >.
|
inlinevirtual |
Returns an OutputPort by id.
Reimplemented in FunctionalNode< std::tuple< INPUT_TYPES... >, std::tuple< OUTPUT_TYPES... > >.
|
inlineoverrideprotectedvirtual |
Function called by the Computational Graph to nodes that the graph has been completely loaded.
Reimplemented from ComputationalNode.
|
inline |
Request the registration of an edge between an output port in another functional node an i_port input port in this node.
Creating edges between FNs requires that all FNs has been created. Thus the edges are only created from 'graphLoadedCB' callback, which is called externally when all nodes have been created.
A ComputationalGraphManager is used to access other nodes, so this function assumes that a ComputationalGraphManager has been instantiated and it is been used to store and manage graph nodes, this is the usual case.
|
friend |