ATLAS Offline Software
Public Types | Static Public Member Functions | Static Private Attributes | List of all members
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

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 >
static 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  }

◆ ATLAS_NOT_THREAD_SAFE() [2/2]

template<class T , class C >
static 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  }

◆ holders()

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

Definition at line 30 of file TypeMaps.h.

30 { return m_holders; }

◆ proxies()

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

Definition at line 29 of file TypeMaps.h.

29 { return m_proxies; }

◆ type2clid()

static 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:
HLT::TypeMaps::m_proxies
static const CLIDtoTypeProxyMap m_proxies
Definition: TypeMaps.h:53
HLT::TypeMaps::CLIDtoHolderMap
std::map< CLID, std::unique_ptr< const HLTNavDetails::IHolder > > CLIDtoHolderMap
Definition: TypeMaps.h:26
HLT::TypeMaps::m_holders
static const CLIDtoHolderMap m_holders
Definition: TypeMaps.h:54
HLT::TypeMaps::NametoCLIDMap
std::map< std::string, CLID > NametoCLIDMap
Definition: TypeMaps.h:27
ClassID_traits::ID
static const CLID & ID()
the CLID of T
Definition: Control/AthenaKernel/AthenaKernel/ClassID_traits.h:50
ClassID_traits::typeName
static const std::string & typeName()
the demangled type name of T
Definition: Control/AthenaKernel/AthenaKernel/ClassID_traits.h:56
HLT::TypeMaps::CLIDtoTypeProxyMap
std::map< CLID, std::unique_ptr< const HLTNavDetails::ITypeProxy > > CLIDtoTypeProxyMap
Definition: TypeMaps.h:25
HLT::TypeMaps::m_type2clid
static const NametoCLIDMap m_type2clid
Definition: TypeMaps.h:55