Go to the documentation of this file.
11 #ifndef GAUDIKERNEL_DATAOBJID
12 #define GAUDIKERNEL_DATAOBJID 1
20 #include <unordered_set>
104 : m_key(
std::move(
key ) ), m_className(
std::move( className ) ) {
124 template <
typename T>
125 struct StringConverter;
friend std::ostream & operator<<(std::ostream &os, const DataObjID &d)
static std::once_flag m_ip
void updateKey(std::string key)
friend bool operator<(const DataObjID &lhs, const DataObjID &rhs)
friend bool operator==(const DataObjID &lhs, const DataObjID &rhs)
std::string fullKey() const
combination of the key and the ClassName, mostly for debugging
TYPE fromString(const TYPE &ref_value, const std::string &s) final override
std::size_t operator()(const DataObjID &k) const
unsigned int CLID
Class ID definition.
friend bool operator!=(const DataObjID &lhs, const DataObjID &rhs)
const std::string & className() const
return the ClassName (if available)
This file provides a Grammar for the type Gaudi::Accumulators::Axis It allows to use that type from p...
DataObjID & operator=(const DataObjID &)=default
static IClassIDSvc * p_clidSvc
DataObjID(const DataObjID &)=default
const std::string & key() const
only return the last part of the key
friend std::ostream & toStream(const DataObjID &v, std::ostream &o)
friend StatusCode parse(DataObjID &dest, std::string_view src)
interface to the CLID database
std::string toString(const TYPE &v)