NRP Core  1.4.1
FunctionalNodeFactoryManager Class Reference

Singleton class which loads Functional Node factory plugins and instantiates Functional Nodes using the former. More...

#include <functional_node_factory_manager.h>

Inheritance diagram for FunctionalNodeFactoryManager:
PluginManager

Public Member Functions

 FunctionalNodeFactoryManager (const FunctionalNodeFactoryManager &)=delete
 
 FunctionalNodeFactoryManager (FunctionalNodeFactoryManager &&)=delete
 
FunctionalNodeFactoryManageroperator= (const FunctionalNodeFactoryManager &)=delete
 
FunctionalNodeFactoryManageroperator= (FunctionalNodeFactoryManager &&)=delete
 
void loadFNFactoryPlugin (const std::string &pluginLibFile)
 Load a Functional Node factory plugin. More...
 
FunctionalNodeBasecreateFunctionalNode (const std::string &functionName, const std::string &nodeName, FunctionalNodePolicies::ExecutionPolicy policy=FunctionalNodePolicies::ExecutionPolicy::ON_NEW_INPUT)
 Attempts to instantiate a Functional Node from the requested functionName using all loaded plugins. More...
 
- Public Member Functions inherited from PluginManager
bool loadPlugin (const std::string &pluginLibFile)
 Load a Plugin from a given library. More...
 
 ~PluginManager ()
 Destructor. Unloads all plugin libraries. More...
 
void addPluginPath (const std::string &pluginPath)
 Adds search path under which to look for plugins. More...
 

Static Public Member Functions

static FunctionalNodeFactoryManagergetInstance ()
 Get singleton instance of FunctionalNodeFactoryManager. More...
 
static void resetInstance ()
 Reset singleton instance. More...
 

Additional Inherited Members

- Protected Attributes inherited from PluginManager
std::map< std::string, void * > _loadedLibs
 Loaded Libraries. More...
 

Detailed Description

Singleton class which loads Functional Node factory plugins and instantiates Functional Nodes using the former.

Functional Node factory plugins are generated using the skeleton "fn_factory_module.cpp.template"

Constructor & Destructor Documentation

◆ FunctionalNodeFactoryManager() [1/2]

FunctionalNodeFactoryManager::FunctionalNodeFactoryManager ( const FunctionalNodeFactoryManager )
delete

◆ FunctionalNodeFactoryManager() [2/2]

FunctionalNodeFactoryManager::FunctionalNodeFactoryManager ( FunctionalNodeFactoryManager &&  )
delete

Member Function Documentation

◆ createFunctionalNode()

FunctionalNodeBase * FunctionalNodeFactoryManager::createFunctionalNode ( const std::string &  functionName,
const std::string &  nodeName,
FunctionalNodePolicies::ExecutionPolicy  policy = FunctionalNodePolicies::ExecutionPolicy::ON_NEW_INPUT 
)

Attempts to instantiate a Functional Node from the requested functionName using all loaded plugins.

Parameters
functionNameName of the function to instantiate the FN from
nodeNameName of the FN
policyExecution policy of the FN
Returns
Returns a FunctionalNodeBase pointer

◆ getInstance()

FunctionalNodeFactoryManager & FunctionalNodeFactoryManager::getInstance ( )
static

Get singleton instance of FunctionalNodeFactoryManager.

◆ loadFNFactoryPlugin()

void FunctionalNodeFactoryManager::loadFNFactoryPlugin ( const std::string &  pluginLibFile)

Load a Functional Node factory plugin.

Parameters
pluginLibFilePlugin library file (.so)

◆ operator=() [1/2]

FunctionalNodeFactoryManager& FunctionalNodeFactoryManager::operator= ( const FunctionalNodeFactoryManager )
delete

◆ operator=() [2/2]

FunctionalNodeFactoryManager& FunctionalNodeFactoryManager::operator= ( FunctionalNodeFactoryManager &&  )
delete

◆ resetInstance()

void FunctionalNodeFactoryManager::resetInstance ( )
static

Reset singleton instance.


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