Belle II Software
release-05-01-25
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
{
38
CreatorManager::registerCreatorFactory
(name,
factory
);
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
geometry
include
CreatorFactory.h
Generated on Fri Nov 5 2021 03:54:27 for Belle II Software by
1.8.17