8 #ifndef ATLAS_OBJECTS_OBJECTFACTORY_H 
    9 #define ATLAS_OBJECTS_OBJECTFACTORY_H 
   11 #include <Atlas/Objects/Root.h> 
   12 #include <Atlas/Objects/SmartPtr.h> 
   18 namespace Atlas { 
namespace Objects {
 
   28     const std::string & getName() {
 
   40 SmartPtr<RootData> generic_factory(
const std::string & name, 
int no);
 
   41 SmartPtr<RootData> anonymous_factory(
const std::string & name, 
int no);
 
   43 typedef Root (*FactoryMethod)(
const std::string &, int);
 
   44 typedef std::map<const std::string, std::pair<FactoryMethod, int> > FactoryMap;
 
   49     friend class AddFactories;
 
   54     bool hasFactory(
const std::string& name);
 
   55     Root createObject(
const std::string& name);
 
   56     Root createObject(
const Atlas::Message::MapType & msg);
 
   57     std::list<std::string> getKeys();
 
   58     int addFactory(
const std::string& name, FactoryMethod method);
 
   62     FactoryMap m_factories;
 
   65     void addFactory(
const std::string& name, FactoryMethod method, 
int classno);
 
   68 extern std::map<const std::string, Root> objectDefinitions;
 
   72 #endif // ATLAS_OBJECTS_OBJECTFACTORY_H