ATLAS Offline Software
Loading...
Searching...
No Matches
KitManager.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3*/
4#include "KitManager.h"
5#include <sstream>
6#include <stdexcept>
7
10
11const void *KitManagerBase::kitPtr(const std::string &name) const {
12 std::lock_guard<std::mutex> lock (m_mutex);
13 return m_registry.at(name);
14}
15
16bool KitManagerBase::registerKit(const std::string& name, const void *a_kit) {
17 std::lock_guard<std::mutex> lock (m_mutex);
18 std::pair<std::string, const void *> elm = std::make_pair(name, a_kit);
19 if (!m_registry.insert(elm).second) {
20 std::stringstream message;
21 message << "Failed to register kit " << elm.first;
22 throw std::runtime_error(message.str());
23 }
24 return true;
25}
27void KitManagerBase::dumpKits(std::ostream &out) const {
28 std::lock_guard<std::mutex> lock (m_mutex);
29 for(const std::pair<const std::string, const void *> &elm: m_registry) {
30 out << " " << elm.first;
31 }
32}
const void * kitPtr(const std::string &name) const
std::mutex m_mutex
Definition KitManager.h:23
bool registerKit(const std::string &name, const void *a_kit)
void dumpKits(std::ostream &out) const
virtual ~KitManagerBase()
std::map< std::string, const void * > m_registry
Definition KitManager.h:24