forked from Samsung/veles
-
Notifications
You must be signed in to change notification settings - Fork 0
/
unit_factory.cc
47 lines (39 loc) · 1.01 KB
/
unit_factory.cc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
/*! @file unit_factory.cc
* @brief Implements Veles::UnitFactory class.
* @author markhor
* @version 1.0
*
* @section Notes
* This code partially conforms to <a href="http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml">Google C++ Style Guide</a>.
*
* @section Copyright
* Copyright 2013 Samsung R&D Institute Russia
*/
#include "inc/veles/unit_factory.h"
#include <cstdio>
#include <string>
namespace Veles {
UnitFactory::UnitFactory()
: Logger("UnitFactory", GetColorByIndex(Logger::COLOR_LIGHTBLUE)) {
}
const UnitFactory& UnitFactory::Instance() {
return InstanceRW();
}
UnitFactory& UnitFactory::InstanceRW() {
static UnitFactory instance;
return instance;
}
UnitFactory::UnitConstructor UnitFactory::operator[](
const std::string& name) const {
auto f = map_.find(name);
if (f != map_.end()) {
return f->second;
}
return nullptr;
}
void UnitFactory::PrintRegisteredUnits() const {
for (auto tit : map_) {
INF("%s", tit.first.c_str());
}
}
} // namespace Veles