IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
Classes | Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | List of all members
ipsdk::DataItemNodeFactory Class Reference

Factory singleton allowing dynamic creation of registred data item nodes. More...

#include <DataItemNodeFactory.h>

Inheritance diagram for ipsdk::DataItemNodeFactory:

Classes

struct  NodeInfo
 struct used to store node informations More...
 

Public Member Functions

bool isRegistredNode (const std::string &className) const
 test if a given data item node class is already registred
 
std::set< std::string > getRegistredNodes () const
 retrieve collection of registred node types
 
template<typename NodeType >
void registerNode ()
 register a new data item node into factory More...
 
template<typename NodeType >
void unRegisterNode ()
 un register a previously registred node from factory More...
 
const std::string & getNodeName (const std::string &className) const
 retrieve name associated to a given node class More...
 
const std::string & getNodeToolTip (const std::string &className) const
 retrieve tooltip associated to a given node class More...
 
const std::string & getNodeLibraryName (const std::string &className) const
 retrieve library name associated to a given node class More...
 
const boost::filesystem::path & getNodeHeaderPath (const std::string &className) const
 retrieve header relative directory associated to a given node class More...
 
DataItemNodePtr createNode (const std::string &className) const
 create instance of a registered data item node class More...
 

Static Public Member Functions

static DataItemNodeFactorygetInstance ()
 retrieve unique instance of factory
 

Protected Types

typedef std::map< std::string, NodeInfoFactoryMap
 map associating a class name to node informations
 

Protected Member Functions

void registerNode (const std::string &className, const NodeInfo &nodeInfo)
 register a new data item node into factory More...
 
void unRegisterNode (const std::string &className)
 un register a previously registred node from factory More...
 
Constructors and destructors
 DataItemNodeFactory ()
 
 ~DataItemNodeFactory ()
 

Protected Attributes

FactoryMap _factoryMap
 map storing string to node informations association
 

Detailed Description

Factory singleton allowing dynamic creation of registred data item nodes.

Author
E. Noirfalise
Date
2014/03/18

Member Function Documentation

◆ registerNode() [1/2]

template<typename NodeType >
void ipsdk::DataItemNodeFactory::registerNode ( )
inline

register a new data item node into factory

Exceptions
ipsdk::IPSDKBaseDataExceptionif isRegistredNode(NodeType::getTypeName()) == true

◆ unRegisterNode() [1/2]

template<typename NodeType >
void ipsdk::DataItemNodeFactory::unRegisterNode ( )
inline

un register a previously registred node from factory

Exceptions
ipsdk::IPSDKBaseDataExceptionif isRegistredNode(NodeType::getTypeName()) == false

◆ getNodeName()

const std::string& ipsdk::DataItemNodeFactory::getNodeName ( const std::string &  className) const

retrieve name associated to a given node class

Exceptions
ipsdk::IPSDKBaseDataExceptionif isRegistredNode(className) == false

◆ getNodeToolTip()

const std::string& ipsdk::DataItemNodeFactory::getNodeToolTip ( const std::string &  className) const

retrieve tooltip associated to a given node class

Exceptions
ipsdk::IPSDKBaseDataExceptionif isRegistredNode(className) == false

◆ getNodeLibraryName()

const std::string& ipsdk::DataItemNodeFactory::getNodeLibraryName ( const std::string &  className) const

retrieve library name associated to a given node class

Exceptions
ipsdk::IPSDKBaseDataExceptionif isRegistredNode(className) == false

◆ getNodeHeaderPath()

const boost::filesystem::path& ipsdk::DataItemNodeFactory::getNodeHeaderPath ( const std::string &  className) const

retrieve header relative directory associated to a given node class

Exceptions
ipsdk::IPSDKBaseDataExceptionif isRegistredNode(className) == false

◆ createNode()

DataItemNodePtr ipsdk::DataItemNodeFactory::createNode ( const std::string &  className) const

create instance of a registered data item node class

Exceptions
ipsdk::IPSDKBaseDataExceptionif isRegistredNode(className) == false

◆ registerNode() [2/2]

void ipsdk::DataItemNodeFactory::registerNode ( const std::string &  className,
const NodeInfo nodeInfo 
)
protected

register a new data item node into factory

Exceptions
ipsdk::IPSDKBaseDataExceptionif isRegistredNode(className) == true

◆ unRegisterNode() [2/2]

void ipsdk::DataItemNodeFactory::unRegisterNode ( const std::string &  className)
protected

un register a previously registred node from factory

Exceptions
ipsdk::IPSDKBaseDataExceptionif isRegistredNode(className) == false

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