GaudiAlg::ID Class Reference

ID class for Histogram and Ntuples. More...

#include <GaudiAlg/GaudiHistoID.h>

Collaboration diagram for GaudiAlg::ID:

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 LiteralIDliteralID () 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::ostreamfillStream (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

type for internal literal ID

Definition at line 51 of file GaudiHistoID.h.

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 {}
size_t m_hash
the hash value of ID
Definition: GaudiHistoID.h:129
NumericID m_nID
Internal numeric ID.
Definition: GaudiHistoID.h:122
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 {}
size_t m_hash
the hash value of ID
Definition: GaudiHistoID.h:129
NumericID m_nID
Internal numeric ID.
Definition: GaudiHistoID.h:122
std::size_t hash_value(const Gaudi::StringKey &key)
hash-function: heeded for boost::hash
Definition: StringKey.h:216
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 {}
size_t m_hash
the hash value of ID
Definition: GaudiHistoID.h:129
NumericID m_nID
Internal numeric ID.
Definition: GaudiHistoID.h:122
std::size_t hash_value(const Gaudi::StringKey &key)
hash-function: heeded for boost::hash
Definition: StringKey.h:216
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 () ; }
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 }
NumericID numericID() const
Returns the numerical ID.
Definition: GaudiHistoID.h:72
const LiteralID & literalID() const
Returns the ID as a LiteralID.
Definition: GaudiHistoID.h:70
string s
Definition: gaudirun.py:245
bool literal() const
Is this ID numeric.
Definition: GaudiHistoID.h:66
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 ; }
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 {
50  fillStream ( s ) ;
51  return s.str() ;
52 }
GAUDI_API std::ostream & fillStream(std::ostream &s) const
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() ; }
T empty(T...args)
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; }
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 ; }
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; }
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 () ; }
GAUDI_API LiteralID idAsString() const
Return ID as string, for both numeric and literal IDs.
bool GaudiAlg::ID::operator! ( ) const
inline

good ID?

Definition at line 110 of file GaudiHistoID.h.

110 { return 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  }
NumericID numericID() const
Returns the numerical ID.
Definition: GaudiHistoID.h:72
const LiteralID & literalID() const
Returns the ID as a LiteralID.
Definition: GaudiHistoID.h:70
GAUDI_API LiteralID idAsString() const
Return ID as string, for both numeric and literal IDs.
bool literal() const
Is this ID numeric.
Definition: GaudiHistoID.h:66
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  }
size_t hash() const
return hash value (for python)
Definition: GaudiHistoID.h:115
NumericID numericID() const
Returns the numerical ID.
Definition: GaudiHistoID.h:72
const LiteralID & literalID() const
Returns the ID as a LiteralID.
Definition: GaudiHistoID.h:70
GAUDI_API LiteralID idAsString() const
Return ID as string, for both numeric and literal IDs.
bool literal() const
Is this ID numeric.
Definition: GaudiHistoID.h:66
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(); }
bool literal() const
Is this ID numeric.
Definition: GaudiHistoID.h:66
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: