DataObjID Class Reference

#include <GaudiKernel/DataObjID.h>

Collaboration diagram for DataObjID:

Public Member Functions

 DataObjID ()
 
 DataObjID (const std::string &key)
 
 DataObjID (const CLID &clid, const std::string &key)
 
 DataObjID (const std::string &className, const std::string &key)
 
 DataObjID (const DataObjID &)=default
 
const std::stringkey () const
 
std::string fullKey () const
 
CLID clid () const
 
void updateKey (const std::string &key)
 

Public Attributes

friend DataObjID_Hasher
 

Private Member Functions

void hashGen ()
 
void parse (const std::string &key)
 
void setClid ()
 
void setClassName ()
 

Static Private Member Functions

static void getClidSvc ()
 

Private Attributes

CLID m_clid {0}
 
std::size_t m_hash {0}
 
std::string m_className {""}
 
std::string m_key {"INVALID"}
 

Static Private Attributes

static IClassIDSvcp_clidSvc
 
static std::once_flag m_ip
 

Friends

std::ostreamoperator<< (std::ostream &str, const DataObjID &d)
 
bool operator< (const DataObjID &lhs, const DataObjID &rhs)
 
bool operator== (const DataObjID &lhs, const DataObjID &rhs)
 
bool operator!= (const DataObjID &lhs, const DataObjID &rhs)
 

Detailed Description

Definition at line 38 of file DataObjID.h.

Constructor & Destructor Documentation

DataObjID::DataObjID ( )
inline

Definition at line 42 of file DataObjID.h.

42 {};
DataObjID::DataObjID ( const std::string key)
inline

Definition at line 91 of file DataObjID.h.

91  :
92  m_key(key) {
93  hashGen();
94 
95 }
std::string m_key
Definition: DataObjID.h:83
void hashGen()
Definition: DataObjID.cpp:11
DataObjID::DataObjID ( const CLID clid,
const std::string key 
)
inline

Definition at line 97 of file DataObjID.h.

97  :
98  m_clid(clid), m_key(key) {
99  setClassName();
100  hashGen();
101 }
std::string m_key
Definition: DataObjID.h:83
CLID clid() const
Definition: DataObjID.h:54
CLID m_clid
Definition: DataObjID.h:79
void setClassName()
Definition: DataObjID.cpp:42
void hashGen()
Definition: DataObjID.cpp:11
DataObjID::DataObjID ( const std::string className,
const std::string key 
)
inline

Definition at line 103 of file DataObjID.h.

103  :
104  m_className(className), m_key(key) {
105  setClid();
106  hashGen();
107 }
std::string m_key
Definition: DataObjID.h:83
void setClid()
Definition: DataObjID.cpp:29
std::string m_className
Definition: DataObjID.h:82
void hashGen()
Definition: DataObjID.cpp:11
DataObjID::DataObjID ( const DataObjID )
default

Member Function Documentation

CLID DataObjID::clid ( ) const
inline

Definition at line 54 of file DataObjID.h.

54 { return m_clid; }
CLID m_clid
Definition: DataObjID.h:79
std::string DataObjID::fullKey ( ) const

Definition at line 64 of file DataObjID.cpp.

64  {
65  if (m_clid == 0 && m_className == "") {
66  return m_key;
67  } else {
68  return ( m_className + "/" + m_key );
69  }
70 }
std::string m_key
Definition: DataObjID.h:83
CLID m_clid
Definition: DataObjID.h:79
std::string m_className
Definition: DataObjID.h:82
void DataObjID::getClidSvc ( )
staticprivate

Definition at line 23 of file DataObjID.cpp.

23  {
24  p_clidSvc = Gaudi::svcLocator()->service<IClassIDSvc>("ClassIDSvc").get();
25 }
static IClassIDSvc * p_clidSvc
Definition: DataObjID.h:86
interface to the CLID database
Definition: IClassIDSvc.h:23
StatusCode service(const Gaudi::Utils::TypeNameString &name, T *&svc, bool createIf=true)
Templated method to access a service by name.
Definition: ISvcLocator.h:78
GAUDI_API ISvcLocator * svcLocator()
void DataObjID::hashGen ( )
private

Definition at line 11 of file DataObjID.cpp.

11  {
12 
13  if (m_clid == 0) {
15  } else {
16  // this is a bit redundant since hash<int> is a pass-through
18  }
19 
20 }
std::string m_key
Definition: DataObjID.h:83
CLID m_clid
Definition: DataObjID.h:79
std::size_t m_hash
Definition: DataObjID.h:80
const std::string& DataObjID::key ( ) const
inline

Definition at line 49 of file DataObjID.h.

49 { return m_key; }
std::string m_key
Definition: DataObjID.h:83
void DataObjID::parse ( const std::string key)
private
void DataObjID::setClassName ( )
private

Definition at line 42 of file DataObjID.cpp.

42  {
43 
45 
47  m_className = "UNKNOW_CLID:" + std::to_string(m_clid);
48  }
49 
50 }
virtual StatusCode getTypeNameOfID(const CLID &id, std::string &typeName) const =0
get user assigned type name associated with clID
T to_string(T...args)
static IClassIDSvc * p_clidSvc
Definition: DataObjID.h:86
T call_once(T...args)
bool isFailure() const
Test for a status code of FAILURE.
Definition: StatusCode.h:84
static std::once_flag m_ip
Definition: DataObjID.h:87
CLID m_clid
Definition: DataObjID.h:79
static void getClidSvc()
Definition: DataObjID.cpp:23
std::string m_className
Definition: DataObjID.h:82
void DataObjID::setClid ( )
private

Definition at line 29 of file DataObjID.cpp.

29  {
30 
32 
34  m_clid = 0;
35  m_className = "UNKNOWN_CLASS:" + m_className;
36  }
37 
38 }
virtual StatusCode getIDOfTypeName(const std::string &typeName, CLID &id) const =0
get id associated with type name (if any)
static IClassIDSvc * p_clidSvc
Definition: DataObjID.h:86
T call_once(T...args)
bool isFailure() const
Test for a status code of FAILURE.
Definition: StatusCode.h:84
static std::once_flag m_ip
Definition: DataObjID.h:87
CLID m_clid
Definition: DataObjID.h:79
static void getClidSvc()
Definition: DataObjID.cpp:23
std::string m_className
Definition: DataObjID.h:82
void DataObjID::updateKey ( const std::string key)
inline

Definition at line 109 of file DataObjID.h.

109  {
110  m_key = key;
111  hashGen();
112 }
std::string m_key
Definition: DataObjID.h:83
const std::string & key() const
Definition: DataObjID.h:49
void hashGen()
Definition: DataObjID.cpp:11

Friends And Related Function Documentation

bool operator!= ( const DataObjID lhs,
const DataObjID rhs 
)
friend

Definition at line 68 of file DataObjID.h.

68  {
69  return !( lhs == rhs );
70  }
bool operator< ( const DataObjID lhs,
const DataObjID rhs 
)
friend

Definition at line 60 of file DataObjID.h.

60  {
61  return lhs.m_hash < rhs.m_hash;
62  }
std::size_t m_hash
Definition: DataObjID.h:80
std::ostream& operator<< ( std::ostream str,
const DataObjID d 
)
friend

Definition at line 54 of file DataObjID.cpp.

54  {
55  if (d.m_clid == 0 && d.m_className == "") {
56  str << "('" << d.m_key << "')";
57  } else {
58  str << "('" << d.m_className << "','" << d.m_key << "')";
59  }
60  return str;
61 }
std::string m_key
Definition: DataObjID.h:83
CLID m_clid
Definition: DataObjID.h:79
std::string m_className
Definition: DataObjID.h:82
bool operator== ( const DataObjID lhs,
const DataObjID rhs 
)
friend

Definition at line 64 of file DataObjID.h.

64  {
65  return lhs.m_hash == rhs.m_hash;
66  }
std::size_t m_hash
Definition: DataObjID.h:80

Member Data Documentation

friend DataObjID::DataObjID_Hasher

Definition at line 40 of file DataObjID.h.

std::string DataObjID::m_className {""}
private

Definition at line 82 of file DataObjID.h.

CLID DataObjID::m_clid {0}
private

Definition at line 79 of file DataObjID.h.

std::size_t DataObjID::m_hash {0}
private

Definition at line 80 of file DataObjID.h.

std::once_flag DataObjID::m_ip
staticprivate

Definition at line 87 of file DataObjID.h.

std::string DataObjID::m_key {"INVALID"}
private

Definition at line 83 of file DataObjID.h.

IClassIDSvc * DataObjID::p_clidSvc
staticprivate

Definition at line 86 of file DataObjID.h.


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