ATLAS Offline Software
Loading...
Searching...
No Matches
CondContFactory.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration.
3 */
4
5#ifndef ATHENAKERNEL_CONDCONTFACT_H
6#define ATHENAKERNEL_CONDCONTFACT_H 1
7
9
10#include <map>
11#include <string>
12#include <mutex>
13
14class DataObject;
15namespace Athena {
16 class IRCUSvc;
17}
18
19namespace CondContainer {
21 public:
22 static CondContFactory& Instance();
23 void regMaker(const CLID& clid, ICondContMaker* maker);
24 SG::DataObjectSharedPtr<DataObject> Create(Athena::IRCUSvc& rcusvc, const CLID& clid, const std::string& key) const;
25
26 private:
28
31
32 std::map<CLID, ICondContMaker*> m_makers;
33 mutable std::mutex m_mapMutex;
34 };
35}
36
37#endif
uint32_t CLID
The Class ID type.
Interface for RCU service.
Definition IRCUSvc.h:40
SG::DataObjectSharedPtr< DataObject > Create(Athena::IRCUSvc &rcusvc, const CLID &clid, const std::string &key) const
void regMaker(const CLID &clid, ICondContMaker *maker)
CondContFactory(const CondContFactory &)
static CondContFactory & Instance()
CondContFactory & operator=(const CondContFactory &)
std::map< CLID, ICondContMaker * > m_makers
Some weak symbol referencing magic... These are declared in AthenaKernel/getMessageSvc....
CxxUtils::RefCountedPtr< T > DataObjectSharedPtr