ATLAS Offline Software
Loading...
Searching...
No Matches
HLT::TypeMaps Class Reference

Type registration of holder, proxies and name/CLID mappings. More...

#include <TypeMaps.h>

Collaboration diagram for HLT::TypeMaps:

Public Types

typedef std::map< CLID, std::unique_ptr< const HLTNavDetails::ITypeProxy > > CLIDtoTypeProxyMap
typedef std::map< CLID, std::unique_ptr< const HLTNavDetails::IHolder > > CLIDtoHolderMap
typedef std::map< std::string, CLIDNametoCLIDMap

Static Public Member Functions

static const CLIDtoTypeProxyMapproxies ()
static const CLIDtoHolderMapholders ()
static const NametoCLIDMaptype2clid ()
template<class T>
static constexpr void registerType ATLAS_NOT_THREAD_SAFE ()
template<class T, class C>
static constexpr void registerFeatureContainer ATLAS_NOT_THREAD_SAFE ()

Static Private Attributes

static const CLIDtoTypeProxyMap m_proxies
static const CLIDtoHolderMap m_holders
static const NametoCLIDMap m_type2clid

Detailed Description

Type registration of holder, proxies and name/CLID mappings.

Definition at line 23 of file TypeMaps.h.

Member Typedef Documentation

◆ CLIDtoHolderMap

typedef std::map<CLID, std::unique_ptr<const HLTNavDetails::IHolder> > HLT::TypeMaps::CLIDtoHolderMap

Definition at line 26 of file TypeMaps.h.

◆ CLIDtoTypeProxyMap

typedef std::map<CLID, std::unique_ptr<const HLTNavDetails::ITypeProxy> > HLT::TypeMaps::CLIDtoTypeProxyMap

Definition at line 25 of file TypeMaps.h.

◆ NametoCLIDMap

typedef std::map<std::string, CLID> HLT::TypeMaps::NametoCLIDMap

Definition at line 27 of file TypeMaps.h.

Member Function Documentation

◆ ATLAS_NOT_THREAD_SAFE() [1/2]

template<class T>
constexpr void registerType HLT::TypeMaps::ATLAS_NOT_THREAD_SAFE ( )
inlinestaticconstexpr

Definition at line 36 of file TypeMaps.h.

36 {
37 auto& nc_proxies = const_cast<CLIDtoTypeProxyMap&>(m_proxies);
38 auto& nc_types = const_cast<NametoCLIDMap&>(m_type2clid);
39 nc_proxies[ClassID_traits<T>::ID()] = std::make_unique<HLTNavDetails::TypeProxy<T>>();
41 }
std::map< std::string, CLID > NametoCLIDMap
Definition TypeMaps.h:27
static const NametoCLIDMap m_type2clid
Definition TypeMaps.h:55
std::map< CLID, std::unique_ptr< const HLTNavDetails::ITypeProxy > > CLIDtoTypeProxyMap
Definition TypeMaps.h:25
static const CLIDtoTypeProxyMap m_proxies
Definition TypeMaps.h:53

◆ ATLAS_NOT_THREAD_SAFE() [2/2]

template<class T, class C>
constexpr void registerFeatureContainer HLT::TypeMaps::ATLAS_NOT_THREAD_SAFE ( )
inlinestaticconstexpr

Definition at line 44 of file TypeMaps.h.

44 {
45 auto& nc_holders = const_cast<CLIDtoHolderMap&>(m_holders);
46 nc_holders[ClassID_traits<T>::ID()] = std::make_unique<HLTNavDetails::HolderImp<T, C>>();
47 HLT::TypeMaps::registerType<T>();
48 HLT::TypeMaps::registerType<C>();
49 }
static const CLIDtoHolderMap m_holders
Definition TypeMaps.h:54
std::map< CLID, std::unique_ptr< const HLTNavDetails::IHolder > > CLIDtoHolderMap
Definition TypeMaps.h:26

◆ holders()

const CLIDtoHolderMap & HLT::TypeMaps::holders ( )
inlinestatic

Definition at line 30 of file TypeMaps.h.

30{ return m_holders; }

◆ proxies()

const CLIDtoTypeProxyMap & HLT::TypeMaps::proxies ( )
inlinestatic

Definition at line 29 of file TypeMaps.h.

29{ return m_proxies; }

◆ type2clid()

const NametoCLIDMap & HLT::TypeMaps::type2clid ( )
inlinestatic

Definition at line 31 of file TypeMaps.h.

31{ return m_type2clid; }

Member Data Documentation

◆ m_holders

const CLIDtoHolderMap HLT::TypeMaps::m_holders
inlinestaticprivate

Definition at line 54 of file TypeMaps.h.

◆ m_proxies

const CLIDtoTypeProxyMap HLT::TypeMaps::m_proxies
inlinestaticprivate

Definition at line 53 of file TypeMaps.h.

◆ m_type2clid

const NametoCLIDMap HLT::TypeMaps::m_type2clid
inlinestaticprivate

Definition at line 55 of file TypeMaps.h.


The documentation for this class was generated from the following file: