| The Gaudi Framework v32r1 (f65d50dc)

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 43 of file GaudiHistoID.h.

## Member Typedef Documentation

## ◆ LiteralID

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

type for internal literal ID

Definition at line 49 of file GaudiHistoID.h.

## ◆ NumericID

typedef int GaudiAlg::ID::NumericID

type for internal numeric ID

Definition at line 47 of file GaudiHistoID.h.

## Constructor & Destructor Documentation

## ◆ ID() [1/4]

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

Implicit constructor from a numeric ID.

Definition at line 54 of file GaudiHistoID.h.

54 : 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:127
GaudiAlg::ID::m_nID
NumericID m_nID
Internal numeric ID.
Definition: GaudiHistoID.h:120
Tuples::hash_value
std::size_t hash_value(TupleID const &b)
Definition: TupleID.h:23

## ◆ ID() [2/4]

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

Implicit 'move' constructor from a literal ID.

Definition at line 56 of file GaudiHistoID.h.

56 : 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:127
Tuples::hash_value
std::size_t hash_value(TupleID const &b)
Definition: TupleID.h:23
std::move
T move(T... args)
GaudiAlg::ID::m_aID
LiteralID m_aID
Internal alpha-numeric ID.
Definition: GaudiHistoID.h:122

## ◆ ID() [3/4]

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

Implicit 'copy' constructor from a literal ID.

Definition at line 58 of file GaudiHistoID.h.

58 : 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:127
Tuples::hash_value
std::size_t hash_value(TupleID const &b)
Definition: TupleID.h:23
GaudiAlg::ID::m_aID
LiteralID m_aID
Internal alpha-numeric ID.
Definition: GaudiHistoID.h:122

## ◆ ID() [4/4]

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

Implicit 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:127
Tuples::hash_value
std::size_t hash_value(TupleID const &b)
Definition: TupleID.h:23
GaudiAlg::ID::m_aID
LiteralID m_aID
Internal alpha-numeric ID.
Definition: GaudiHistoID.h:122

## ◆ ~ID()

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

Destructor.

## Member Function Documentation

## ◆ __hash__()

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

return hash value (for python)

Definition at line 115 of file GaudiHistoID.h.

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

## ◆ fillStream()

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

Definition at line 28 of file GaudiHistoID.cpp.

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

## ◆ hash()

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

return hash value (for python)

Definition at line 113 of file GaudiHistoID.h.

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

## ◆ idAsString()

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.

20 {
21 std::ostringstream s;
22 fillStream( s );
23 return s.str();
24 }
std::ostringstream
STL class.
GaudiAlg::ID::fillStream
GAUDI_API std::ostream & fillStream(std::ostream &s) const
Definition: GaudiHistoID.cpp:28
gaudirun.s
string s
Definition: gaudirun.py:316

## ◆ literal()

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

Is this ID numeric.

Definition at line 66 of file GaudiHistoID.h.

66 { 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:122

## ◆ literalID()

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

Returns the ID as a LiteralID.

Definition at line 70 of file GaudiHistoID.h.

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

## ◆ numeric()

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

Is this ID numeric.

Definition at line 64 of file GaudiHistoID.h.

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

## ◆ numericID()

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

Returns the numerical ID.

Definition at line 72 of file GaudiHistoID.h.

72 { return m_nID; }
GaudiAlg::ID::m_nID
NumericID m_nID
Internal numeric ID.
Definition: GaudiHistoID.h:120

## ◆ operator std::string()

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

cast operator to std::string

Definition at line 76 of file GaudiHistoID.h.

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

## ◆ operator!()

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

good ID?

Definition at line 108 of file GaudiHistoID.h.

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

## ◆ operator!=()

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

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

Definition at line 89 of file GaudiHistoID.h.

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

## ◆ operator<()

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 94 of file GaudiHistoID.h.

94 {
95 return
96 // hash () < id.hash () ? true :
97 // hash () > id.hash () ? false :
98 numeric() && id.numeric()
99 ? numericID() < id.numericID()
100 : literal() && id.literal() ? literalID() < id.literalID() : idAsString() < id.idAsString();
101 }
GaudiAlg::ID::literalID
const LiteralID & literalID() const noexcept
Returns the ID as a LiteralID.
Definition: GaudiHistoID.h:70
GaudiAlg::ID::numericID
NumericID numericID() const noexcept
Returns the numerical ID.
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::literal
bool literal() const noexcept
Is this ID numeric.
Definition: GaudiHistoID.h:66
GaudiAlg::ID::numeric
bool numeric() const noexcept
Is this ID numeric.
Definition: GaudiHistoID.h:64

## ◆ operator==()

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 81 of file GaudiHistoID.h.

81 {
82 return hash() != id.hash()
83 ? false
84 : numeric() && id.numeric()
85 ? id.numericID() == numericID()
86 : literal() && id.literal() ? id.literalID() == literalID() : idAsString() == id.idAsString();
87 }
GaudiAlg::ID::literalID
const LiteralID & literalID() const noexcept
Returns the ID as a LiteralID.
Definition: GaudiHistoID.h:70
GaudiAlg::ID::numericID
NumericID numericID() const noexcept
Returns the numerical ID.
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::literal
bool literal() 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:113
GaudiAlg::ID::numeric
bool numeric() const noexcept
Is this ID numeric.
Definition: GaudiHistoID.h:64

## ◆ undefined()

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

Is this ID undefined.

Definition at line 68 of file GaudiHistoID.h.

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

## Member Data Documentation

## ◆ m_aID

LiteralID GaudiAlg::ID::m_aID
| private

Internal alpha-numeric ID.

Definition at line 122 of file GaudiHistoID.h.

## ◆ m_hash

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

the hash value of ID

Definition at line 127 of file GaudiHistoID.h.

## ◆ m_nID

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

Internal numeric ID.

Definition at line 120 of file GaudiHistoID.h.

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

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