| The Gaudi Framework v27r1

- 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 (const LiteralID &id)
| Implicit constructor from a literal ID. More...
| ID (const char *id)
| Implicit constructor from a literal ID. More...
| ~ID ()=default
| Destructor. More...
bool | numeric () const
| Is this ID numeric. More...
bool | literal () const
| Is this ID numeric. More...
bool | undefined () const
| Is this ID undefined. More...
const LiteralID & | literalID () const
| Returns the ID as a LiteralID. More...
NumericID | numericID () const
| 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
| 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
| Implement the operator < Implementation depends on type of ID. More...
GAUDI_API std::ostream & | fillStream (std::ostream &s) const
bool | operator! () const
| good ID? More...
size_t | hash () const
| return hash value (for python) More...
size_t | __hash__ () const
| return hash value (for python) More...

## Private Attributes
NumericID | m_nID
| Internal numeric ID. More...
LiteralID | m_aID
| Internal alpha-numeric ID. More...
size_t | m_hash
| 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` | ) |

Implicit constructor from a numeric ID.

Definition at line 26 of file GaudiHistoID.cpp.

27 : m_nID ( id )
28 , m_hash ( boost::hash_value ( id ) )
29 {}
GaudiAlg::ID::m_hash
size_t m_hash
the hash value of ID
Definition: GaudiHistoID.h:129
GaudiAlg::ID::m_nID
NumericID m_nID
Internal numeric ID.
Definition: GaudiHistoID.h:122
Gaudi::hash_value
std::size_t hash_value(const Gaudi::StringKey &key)
hash-function: heeded for boost::hash
Definition: StringKey.h:216

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

Implicit constructor from a literal ID.

Definition at line 33 of file GaudiHistoID.cpp.

34 : m_nID ( -1 )
35 , m_aID ( id )
36 , m_hash ( boost::hash_value ( m_aID ) )
37 {}
GaudiAlg::ID::m_hash
size_t m_hash
the hash value of ID
Definition: GaudiHistoID.h:129
GaudiAlg::ID::m_nID
NumericID m_nID
Internal numeric ID.
Definition: GaudiHistoID.h:122
Gaudi::hash_value
std::size_t hash_value(const Gaudi::StringKey &key)
hash-function: heeded for boost::hash
Definition: StringKey.h:216
GaudiAlg::ID::m_aID
LiteralID m_aID
Internal alpha-numeric ID.
Definition: GaudiHistoID.h:124

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

Implicit constructor from a literal ID.

Definition at line 41 of file GaudiHistoID.cpp.

42 : m_nID ( -1 )
43 , m_aID ( id )
44 , m_hash ( boost::hash_value ( m_aID ) )
45 {}
GaudiAlg::ID::m_hash
size_t m_hash
the hash value of ID
Definition: GaudiHistoID.h:129
GaudiAlg::ID::m_nID
NumericID m_nID
Internal numeric ID.
Definition: GaudiHistoID.h:122
Gaudi::hash_value
std::size_t hash_value(const Gaudi::StringKey &key)
hash-function: heeded for boost::hash
Definition: StringKey.h:216
GaudiAlg::ID::m_aID
LiteralID m_aID
Internal alpha-numeric ID.
Definition: GaudiHistoID.h:124

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

Destructor.

## Member Function Documentation

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

return hash value (for python)

Definition at line 117 of file GaudiHistoID.h.

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

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

Definition at line 56 of file GaudiHistoID.cpp.

57 {
58 if ( numeric() ) { s << numericID() ; }
59 else if ( literal() ) { s << literalID() ; }
60 else { s << "UNDEFINED" ; }
61 return s ;
62 }
GaudiAlg::ID::numericID
NumericID numericID() const
Returns the numerical ID.
Definition: GaudiHistoID.h:72
GaudiAlg::ID::literalID
const LiteralID & literalID() const
Returns the ID as a LiteralID.
Definition: GaudiHistoID.h:70
gaudirun.s
string s
Definition: gaudirun.py:245
GaudiAlg::ID::literal
bool literal() const
Is this ID numeric.
Definition: GaudiHistoID.h:66
GaudiAlg::ID::numeric
bool numeric() const
Is this ID numeric.
Definition: GaudiHistoID.h:64

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

return hash value (for python)

Definition at line 115 of file GaudiHistoID.h.

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

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

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

Definition at line 47 of file GaudiHistoID.cpp.

48 {
49 std::ostringstream s ;
50 fillStream ( s ) ;
51 return s.str() ;
52 }
GaudiAlg::ID::fillStream
GAUDI_API std::ostream & fillStream(std::ostream &s) const
Definition: GaudiHistoID.cpp:56
std::ostringstream
STL class.
std::ostringstream::str
T str(T...args)
gaudirun.s
string s
Definition: gaudirun.py:245

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

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:124

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

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:124

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

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

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

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

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:47

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

good ID?

Definition at line 110 of file GaudiHistoID.h.

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

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

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

Definition at line 90 of file GaudiHistoID.h.

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

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

Implement the operator < Implementation depends on type of ID.

Returns
  boolean indicating the order of the IDs

Definition at line 95 of file GaudiHistoID.h.

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

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

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.

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

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

Is this ID undefined.

Definition at line 68 of file GaudiHistoID.h.

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

## Member Data Documentation

LiteralID GaudiAlg::ID::m_aID
| private

Internal alpha-numeric ID.

Definition at line 124 of file GaudiHistoID.h.

size_t GaudiAlg::ID::m_hash
| private

the hash value of ID

Definition at line 129 of file GaudiHistoID.h.

NumericID GaudiAlg::ID::m_nID
| private

Internal numeric ID.

Definition at line 122 of file GaudiHistoID.h.

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

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