7 #ifndef ATLAS_FACTORY_H 8 #define ATLAS_FACTORY_H 38 Factory(
const std::string& name,
const typename T::Metrics& metrics)
39 : m_name(name), m_metrics(metrics)
41 factories()->push_back(
this);
46 std::list<Factory*>::iterator i;
47 i = std::find(factories()->begin(), factories()->end(),
this);
48 factories()->erase(i);
51 virtual T* New(
const typename T::Parameters&) = 0;
52 virtual void Delete(T*) = 0;
59 typename T::Metrics getMetrics()
64 static std::list<Factory*> * factories()
66 static std::list<Factory*> * m_factories =
nullptr;
67 if (m_factories ==
nullptr) {
68 m_factories =
new std::list<Factory*>;
77 typename T::Metrics m_metrics;
81 static void getFactories();
Class factory.
Definition: Factory.h:34
The Atlas namespace.
Definition: Bridge.h:20