| The Gaudi Framework v29r1 (5cd95fa2)

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

Public Types | Public Member Functions | Private Attributes | List of all members
GaudiAlg::ID Class Reference

ID class for Histogram and Ntuples. More...

`#include <GaudiAlg/GaudiHistoID.h>`

Collaboration diagram for GaudiAlg::ID:
[legend]

## Public Types
typedef int | NumericID
| type for internal numeric ID More...
typedef std::string | LiteralID
| type for internal literal ID More...

## Public Member Functions
| ID (const NumericID id=-1)
| Implicit constructor from a numeric ID. More...
| ID (LiteralID &&id)
| Implicit 'move' constructor from a literal ID. More...
| ID (const LiteralID &id)
| Implicit 'copy' constructor from a literal ID. More...
| ID (const char *id)
| Implicit constructor from a literal ID. More...
| ~ID ()=default
| Destructor. More...
bool | numeric () const noexcept
| Is this ID numeric. More...
bool | literal () const noexcept
| Is this ID numeric. More...
bool | undefined () const noexcept
| Is this ID undefined. More...
const LiteralID & | literalID () const noexcept
| Returns the ID as a LiteralID. More...
NumericID | numericID () const noexcept
| Returns the numerical ID. More...
GAUDI_API LiteralID | idAsString () const
| Return ID as string, for both numeric and literal IDs. More...
| operator std::string () const
| cast operator to std::string More...
bool | operator== (const ID &id) const noexcept
| Implement the operator == Implementation depends on type of ID. More...
bool | operator!= (const ID &id) const
| Implement the != operator, using the == operator. More...
bool | operator< (const ID &id) const noexcept
| Implement the operator < Implementation depends on type of ID. More...
GAUDI_API std::ostream & | fillStream (std::ostream &s) const
bool | operator! () const noexcept
| good ID? More...
size_t | hash () const noexcept
| return hash value (for python) More...
size_t | __hash__ () const noexcept
| return hash value (for python) More...

## Private Attributes
NumericID | m_nID {-1}
| Internal numeric ID. More...
LiteralID | m_aID
| Internal alpha-numeric ID. More...
size_t | m_hash {0}
| the hash value of ID More...

## Detailed Description

ID class for Histogram and Ntuples.

Internally handles both numeric and string like IDs

Author
  Chris Jones Chris.nosp@m.toph.nosp@m.er.Ro.nosp@m.b.Jo.nosp@m.nes@c.nosp@m.ern..nosp@m.ch

Date
  2005-08-12

Definition at line 44 of file GaudiHistoID.h.

## Member Typedef Documentation

typedef std::string GaudiAlg::ID::LiteralID

type for internal literal ID

Definition at line 51 of file GaudiHistoID.h.

typedef int GaudiAlg::ID::NumericID

type for internal numeric ID

Definition at line 49 of file GaudiHistoID.h.

## Constructor & Destructor Documentation

GaudiAlg::ID::ID | ( | const NumericID | id = `-1` | ) |
| inline

Implicit constructor from a numeric ID.

Definition at line 56 of file GaudiHistoID.h.

56 : m_nID( id ), m_hash( boost::hash_value( id ) ) {}
GaudiAlg::ID::m_hash
size_t m_hash
the hash value of ID
Definition: GaudiHistoID.h:131
GaudiAlg::ID::m_nID
NumericID m_nID
Internal numeric ID.
Definition: GaudiHistoID.h:124
Gaudi::hash_value
std::size_t hash_value(const Gaudi::StringKey &key)
hash-function: heeded for boost::hash
Definition: StringKey.h:207

GaudiAlg::ID::ID | ( | LiteralID && | id | ) |
| inline

Implicit 'move' constructor from a literal ID.

Definition at line 58 of file GaudiHistoID.h.

58 : m_aID( std::move( id ) ), m_hash( boost::hash_value( m_aID ) ) {}
GaudiAlg::ID::m_hash
size_t m_hash
the hash value of ID
Definition: GaudiHistoID.h:131
Gaudi::hash_value
std::size_t hash_value(const Gaudi::StringKey &key)
hash-function: heeded for boost::hash
Definition: StringKey.h:207
std::move
T move(T...args)
GaudiAlg::ID::m_aID
LiteralID m_aID
Internal alpha-numeric ID.
Definition: GaudiHistoID.h:126

GaudiAlg::ID::ID | ( | const LiteralID & | id | ) |
| inline

Implicit 'copy' constructor from a literal ID.

Definition at line 60 of file GaudiHistoID.h.

60 : m_aID( id ), m_hash( boost::hash_value( m_aID ) ) {}
GaudiAlg::ID::m_hash
size_t m_hash
the hash value of ID
Definition: GaudiHistoID.h:131
Gaudi::hash_value
std::size_t hash_value(const Gaudi::StringKey &key)
hash-function: heeded for boost::hash
Definition: StringKey.h:207
GaudiAlg::ID::m_aID
LiteralID m_aID
Internal alpha-numeric ID.
Definition: GaudiHistoID.h:126

GaudiAlg::ID::ID | ( | const char * | id | ) |
| inline

Implicit constructor from a literal ID.

Definition at line 62 of file GaudiHistoID.h.

62 : m_aID( id ), m_hash( boost::hash_value( m_aID ) ) {}
GaudiAlg::ID::m_hash
size_t m_hash
the hash value of ID
Definition: GaudiHistoID.h:131
Gaudi::hash_value
std::size_t hash_value(const Gaudi::StringKey &key)
hash-function: heeded for boost::hash
Definition: StringKey.h:207
GaudiAlg::ID::m_aID
LiteralID m_aID
Internal alpha-numeric ID.
Definition: GaudiHistoID.h:126

GaudiAlg::ID::~ID | ( |  | ) |
| default

Destructor.

## Member Function Documentation

size_t GaudiAlg::ID::__hash__ | ( |  | ) | const
| inline noexcept

return hash value (for python)

Definition at line 119 of file GaudiHistoID.h.

119 { return hash(); }
GaudiAlg::ID::hash
size_t hash() const noexcept
return hash value (for python)
Definition: GaudiHistoID.h:117

std::ostream & GaudiAlg::ID::fillStream | ( | std::ostream & | s | ) | const

Definition at line 29 of file GaudiHistoID.cpp.

30 {
31 if ( numeric() ) {
32 s << numericID();
33 } else if ( literal() ) {
34 s << literalID();
35 } else {
36 s << "UNDEFINED";
37 }
38 return s;
39 }
GaudiAlg::ID::numericID
NumericID numericID() const noexcept
Returns the numerical ID.
Definition: GaudiHistoID.h:74
GaudiAlg::ID::literal
bool literal() const noexcept
Is this ID numeric.
Definition: GaudiHistoID.h:68
GaudiAlg::ID::literalID
const LiteralID & literalID() const noexcept
Returns the ID as a LiteralID.
Definition: GaudiHistoID.h:72
gaudirun.s
string s
Definition: gaudirun.py:253
GaudiAlg::ID::numeric
bool numeric() const noexcept
Is this ID numeric.
Definition: GaudiHistoID.h:66

size_t GaudiAlg::ID::hash | ( |  | ) | const
| inline noexcept

return hash value (for python)

Definition at line 117 of file GaudiHistoID.h.

117 { return m_hash; }
GaudiAlg::ID::m_hash
size_t m_hash
the hash value of ID
Definition: GaudiHistoID.h:131

GaudiAlg::ID::LiteralID GaudiAlg::ID::idAsString | ( |  | ) | const

Return ID as string, for both numeric and literal IDs.

Definition at line 20 of file GaudiHistoID.cpp.

21 {
22 std::ostringstream s;
23 fillStream( s );
24 return s.str();
25 }
GaudiAlg::ID::fillStream
GAUDI_API std::ostream & fillStream(std::ostream &s) const
Definition: GaudiHistoID.cpp:29
std::ostringstream
STL class.
std::ostringstream::str
T str(T...args)
gaudirun.s
string s
Definition: gaudirun.py:253

bool GaudiAlg::ID::literal | ( |  | ) | const
| inline noexcept

Is this ID numeric.

Definition at line 68 of file GaudiHistoID.h.

68 { return !m_aID.empty(); }
std::string::empty
T empty(T...args)
GaudiAlg::ID::m_aID
LiteralID m_aID
Internal alpha-numeric ID.
Definition: GaudiHistoID.h:126

const LiteralID& GaudiAlg::ID::literalID | ( |  | ) | const
| inline noexcept

Returns the ID as a LiteralID.

Definition at line 72 of file GaudiHistoID.h.

72 { return m_aID; }
GaudiAlg::ID::m_aID
LiteralID m_aID
Internal alpha-numeric ID.
Definition: GaudiHistoID.h:126

bool GaudiAlg::ID::numeric | ( |  | ) | const
| inline noexcept

Is this ID numeric.

Definition at line 66 of file GaudiHistoID.h.

66 { return -1 != m_nID; }
GaudiAlg::ID::m_nID
NumericID m_nID
Internal numeric ID.
Definition: GaudiHistoID.h:124

NumericID GaudiAlg::ID::numericID | ( |  | ) | const
| inline noexcept

Returns the numerical ID.

Definition at line 74 of file GaudiHistoID.h.

74 { return m_nID; }
GaudiAlg::ID::m_nID
NumericID m_nID
Internal numeric ID.
Definition: GaudiHistoID.h:124

GaudiAlg::ID::operator std::string | ( |  | ) | const
| inline

cast operator to std::string

Definition at line 78 of file GaudiHistoID.h.

78 { return idAsString(); }
GaudiAlg::ID::idAsString
GAUDI_API LiteralID idAsString() const
Return ID as string, for both numeric and literal IDs.
Definition: GaudiHistoID.cpp:20

bool GaudiAlg::ID::operator! | ( |  | ) | const
| inline noexcept

good ID?

Definition at line 112 of file GaudiHistoID.h.

112 { return undefined(); }
GaudiAlg::ID::undefined
bool undefined() const noexcept
Is this ID undefined.
Definition: GaudiHistoID.h:70

bool GaudiAlg::ID::operator!= | ( | const ID & | id | ) | const
| inline

Implement the != operator, using the == operator.

Definition at line 92 of file GaudiHistoID.h.

92 { return !( *this == id ); }

bool GaudiAlg::ID::operator< | ( | const ID & | id | ) | const
| inline noexcept

Implement the operator < Implementation depends on type of ID.

Returns
  boolean indicating the order of the IDs

Definition at line 97 of file GaudiHistoID.h.

98 {
99 return
100 // hash () < id.hash () ? true :
101 // hash () > id.hash () ? false :
102 numeric() && id.numeric()
103 ? numericID() < id.numericID()
104 : literal() && id.literal() ? literalID() < id.literalID() : idAsString() < id.idAsString();
105 }
GaudiAlg::ID::numericID
NumericID numericID() const noexcept
Returns the numerical ID.
Definition: GaudiHistoID.h:74
GaudiAlg::ID::literal
bool literal() const noexcept
Is this ID numeric.
Definition: GaudiHistoID.h:68
GaudiAlg::ID::literalID
const LiteralID & literalID() const noexcept
Returns the ID as a LiteralID.
Definition: GaudiHistoID.h:72
GaudiAlg::ID::idAsString
GAUDI_API LiteralID idAsString() const
Return ID as string, for both numeric and literal IDs.
Definition: GaudiHistoID.cpp:20
GaudiAlg::ID::numeric
bool numeric() const noexcept
Is this ID numeric.
Definition: GaudiHistoID.h:66

bool GaudiAlg::ID::operator== | ( | const ID & | id | ) | const
| inline noexcept

Implement the operator == Implementation depends on type of ID.

Returns
  boolean indicating if the IDs are equal

Definition at line 83 of file GaudiHistoID.h.

84 {
85 return hash() != id.hash()
86 ? false
87 : numeric() && id.numeric()
88 ? id.numericID() == numericID()
89 : literal() && id.literal() ? id.literalID() == literalID() : idAsString() == id.idAsString();
90 }
GaudiAlg::ID::numericID
NumericID numericID() const noexcept
Returns the numerical ID.
Definition: GaudiHistoID.h:74
GaudiAlg::ID::literal
bool literal() const noexcept
Is this ID numeric.
Definition: GaudiHistoID.h:68
GaudiAlg::ID::literalID
const LiteralID & literalID() const noexcept
Returns the ID as a LiteralID.
Definition: GaudiHistoID.h:72
GaudiAlg::ID::idAsString
GAUDI_API LiteralID idAsString() const
Return ID as string, for both numeric and literal IDs.
Definition: GaudiHistoID.cpp:20
GaudiAlg::ID::numeric
bool numeric() const noexcept
Is this ID numeric.
Definition: GaudiHistoID.h:66
GaudiAlg::ID::hash
size_t hash() const noexcept
return hash value (for python)
Definition: GaudiHistoID.h:117

bool GaudiAlg::ID::undefined | ( |  | ) | const
| inline noexcept

Is this ID undefined.

Definition at line 70 of file GaudiHistoID.h.

70 { return !numeric() && !literal(); }
GaudiAlg::ID::literal
bool literal() const noexcept
Is this ID numeric.
Definition: GaudiHistoID.h:68
GaudiAlg::ID::numeric
bool numeric() const noexcept
Is this ID numeric.
Definition: GaudiHistoID.h:66

## Member Data Documentation

LiteralID GaudiAlg::ID::m_aID
| private

Internal alpha-numeric ID.

Definition at line 126 of file GaudiHistoID.h.

size_t GaudiAlg::ID::m_hash {0}
| private

the hash value of ID

Definition at line 131 of file GaudiHistoID.h.

NumericID GaudiAlg::ID::m_nID {-1}
| private

Internal numeric ID.

Definition at line 124 of file GaudiHistoID.h.

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

- GaudiAlg/GaudiAlg/GaudiHistoID.h
- GaudiAlg/src/lib/GaudiHistoID.cpp