40 #ifndef _uhal_DerivedNodeFactory_hpp_ 41 #define _uhal_DerivedNodeFactory_hpp_ 46 #include <boost/noncopyable.hpp> 47 #include <boost/unordered_map.hpp> 57 class NodeTreeBuilder;
60 template<
typename T >
struct RegistrationHelper;
99 Node* convertToClassType(
Node* aNode );
106 void add (
const std::string& aNodeClassName );
130 virtual Node* create (
const Node& aNode ) = 0;
166 boost::unordered_map< std::string , boost::shared_ptr< CreatorInterface > >
mCreators;
A class to build a node tree from an Address table file NOTE! This is a factory method and must be Mu...
boost::unordered_map< std::string, boost::shared_ptr< CreatorInterface > > mCreators
Hash map associating a creator for a particular node type with a string identifier for that node type...
static DerivedNodeFactory * mInstance
The single instance of the class.
virtual ~Creator()
Destructor.
A heirarchical node for navigating heirarchical firmwares.
CreatorInterface()
Default constructor.
A singleton class to register derived nodes, and create instances of them later NOTE! This is a facto...
virtual ~CreatorInterface()
Destructor.
An abstract base class for defining the interface to the creators.
Creator()
Default constructor.
Templated concrete implementation with a CreatorInterface interface.
Experimental!! Helper struct for adding the DerivedNode to the Node Factory Declaring an instance of ...