Belle II Software  release-05-02-19
CreatorFactory.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2010 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Andreas Moll, Martin Ritter *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 
11 #ifndef CREATORFACTORY_H
12 #define CREATORFACTORY_H
13 
14 #include <geometry/CreatorManager.h>
15 
16 namespace Belle2 {
21  namespace geometry {
22 
23  class CreatorBase;
24 
34  template<class T> struct CreatorFactory {
36  explicit CreatorFactory(const std::string& name)
37  {
39  }
45  static CreatorBase* factory()
46  {
47  return new T();
48  }
49  };
50 
51  }
53 } //end of namespace Belle2
54 
55 #endif /* CREATORFACTORY_H */
Belle2::geometry::CreatorFactory::factory
static CreatorBase * factory()
Static factory function to return a new instance of the given Creator class.
Definition: CreatorFactory.h:53
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::geometry::CreatorManager::registerCreatorFactory
static void registerCreatorFactory(const std::string &name, CreatorFactory *factory)
Register a new creator by providing a name and a pointer to a factory for this kind of creator.
Definition: CreatorManager.cc:28
Belle2::geometry::CreatorFactory::CreatorFactory
CreatorFactory(const std::string &name)
Constructor to register the Creator with the CreatorManager.
Definition: CreatorFactory.h:44