17 #include <glog/logging.h> 20 #include <unordered_map> 30 std::unordered_map<std::string, std::shared_ptr<ImplementationFactory>>
38 const std::string& key_system,
39 std::shared_ptr<ImplementationFactory> factory) {
40 std::unique_lock<std::mutex> lock(mutex_);
41 const auto it = factories_.find(key_system);
42 if (it != factories_.end())
45 factories_.emplace(key_system, factory);
48 std::shared_ptr<ImplementationFactory>
50 std::unique_lock<std::mutex> lock(mutex_);
51 auto it = factories_.find(key_system);
52 return it != factories_.end() ? it->second :
nullptr;
#define END_ALLOW_COMPLEX_STATICS
static std::shared_ptr< ImplementationFactory > GetImplementation(const std::string &key_system)
#define BEGIN_ALLOW_COMPLEX_STATICS
static void AddImplementation(const std::string &key_system, std::shared_ptr< ImplementationFactory > factory)