1#include <Dataflow/RaDataflow.hpp>
3#include <Dataflow/Core/DataflowGraph.hpp>
4#include <Dataflow/Core/Functionals/Types.hpp>
5#include <Dataflow/Core/Node.hpp>
6#include <Dataflow/Core/NodeFactory.hpp>
7#include <Dataflow/Core/Sinks/Types.hpp>
8#include <Dataflow/Core/Sources/Types.hpp>
10void CoreNodes__Initializer();
12struct CoreNodes__Initializer_t_ {
13 CoreNodes__Initializer_t_() { ::CoreNodes__Initializer(); }
15static CoreNodes__Initializer_t_ CoreNodes__Initializer__;
17using namespace Ra::Dataflow::Core;
19#define ADD_TYPES_TO_FACTORY( FACTORY, FIX ) \
20 REGISTER_TYPE_TO_FACTORY( FACTORY, Functionals::ArrayFilter##FIX, Fonctionals ); \
21 REGISTER_TYPE_TO_FACTORY( FACTORY, Functionals::ArrayTransformer##FIX, Fonctionals ); \
22 REGISTER_TYPE_TO_FACTORY( FACTORY, Functionals::ArrayReducer##FIX, Fonctionals ); \
23 REGISTER_TYPE_TO_FACTORY( FACTORY, Functionals::BinaryOp##FIX, Fonctionals ); \
24 REGISTER_TYPE_TO_FACTORY( FACTORY, Functionals::BinaryOp##FIX##Array, Fonctionals ); \
25 REGISTER_TYPE_TO_FACTORY( FACTORY, Functionals::BinaryPredicate##FIX, Fonctionals ); \
26 REGISTER_TYPE_TO_FACTORY( FACTORY, Functionals::Transform##FIX, Fonctionals ); \
27 REGISTER_TYPE_TO_FACTORY( FACTORY, Sinks::FIX##Sink, Sinks ); \
28 REGISTER_TYPE_TO_FACTORY( FACTORY, Sinks::FIX##ArraySink, Sinks ); \
29 REGISTER_TYPE_TO_FACTORY( FACTORY, Sources::FIX##Source, Sources ); \
30 REGISTER_TYPE_TO_FACTORY( FACTORY, Sources::FIX##ArraySource, Sources ); \
31 REGISTER_TYPE_TO_FACTORY( FACTORY, Sources::FIX##UnaryFunctionSource, Sources ); \
32 REGISTER_TYPE_TO_FACTORY( FACTORY, Sources::FIX##BinaryFunctionSource, Sources ); \
33 REGISTER_TYPE_TO_FACTORY( FACTORY, Sources::FIX##UnaryPredicateSource, Sources ); \
34 REGISTER_TYPE_TO_FACTORY( FACTORY, Sources::FIX##BinaryPredicateSource, Sources )
36void CoreNodes__Initializer() {
37 PortFactory::createInstance();
49#define DATAFLOW_MACRO( PREFIX, TYPE, FACTORY, NAMESPACE ) ADD_TYPES_TO_FACTORY( FACTORY, PREFIX )
50 NODE_TYPES( factory, _ );
55 REGISTER_TYPE_TO_FACTORY( factory, GraphInputNode, Graph );
56 REGISTER_TYPE_TO_FACTORY( factory, GraphOutputNode, Graph );
Represent a set of connected nodes that define a Direct Acyclic Computational Graph Ownership of node...
Base class for nodes that will store the result of a computation graph.
Base class for nodes that will give access to some input data to the graph. This class can be used to...
auto factory(const NodeFactorySet::key_type &name) -> NodeFactorySet::mapped_type
Gets the given factory from the manager.
auto create_factory(const NodeFactorySet::key_type &name) -> NodeFactorySet::mapped_type
Create and register a factory to the manager.
auto factory_manager() -> NodeFactorySet &
Allow static initialization without init order problems.