5#ifndef ATHENAKERNEL_CLIDREGISTRY_H
6# define ATHENAKERNEL_CLIDREGISTRY_H
14#include "GaudiKernel/ClassID.h"
37 typedef std::tuple <
unsigned long,
43 template <
unsigned long CLID>
44 static bool addEntry(
const std::type_info& ti,
46 const std::string& typeInfoName);
63 static bool addEntry (
unsigned long clid,
64 const std::type_info& ti,
66 const std::string& typeInfoName);
73template <
unsigned long CLID>
76 const std::string& typeInfoName) {
78 "CLID out of CLIDRegistry range");
uint32_t CLID
The Class ID type.
a static registry of CLID->typeName entries.
static bool addEntry(const std::type_info &ti, const char *typeName, const std::string &typeInfoName)
to be called by the CLASS_DEFS
static CLIDRegistryImpl & impl()
static CLID typeinfoToCLID(const std::type_info &ti)
Return the CLID corresponding to a type_info.
static const std::type_info * CLIDToTypeinfo(CLID clid)
Translate between CLID and type_info.
std::vector< tuple_t > CLIDVector_t
static bool hasNewEntries()
registry accessors (used by ClassIDSvc)
std::tuple< unsigned long, std::string, std::string > tuple_t
static CLIDVector_t newEntries()
returns an iterator range over the entries added since last time newEntries was called
const unsigned long MINCLID
const unsigned long MAXCLID
2**31 - 1