| The Gaudi Framework v30r0 (c919700c)

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

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

Public Types | Static Public Member Functions | List of all members
Containers::key_traits< KEY > Struct Template Reference

Key traits class. More...

`#include <GaudiKernel/KeyedTraits.h>`

## Public Types
typedef KEY | key_type
| Declaration of key-type. More...
typedef KeyedObject< key_type > | obj_type
| Declaration of keyed object type. More...

## Static Public Member Functions
static key_type | makeKey (long k)
| Create key from its full integer representation. More...
static key_type | makeKey (int k)
static long | identifier (const key_type &k)
| Full unhashed key identifier. More...
static long | hash (const key_type &key_value)
| Hash function for this key. More...
static void | setKey (obj_type *v, const key_type &k)
| Set object key when inserted into the container. More...
static bool | checkKey (obj_type *v, const key_type &k)
| Check the validity of the object's key. More...
static long | addRef (obj_type *v)
| Add reference counter to object when inserted into the container. More...
static long | release (obj_type *v)
| Release reference to object. More...

## Detailed Description

### template<class KEY>
struct Containers::key_traits< KEY >

Key traits class.

Definition of the key traits class.

This is the default class for keys. This implementation works "as is" for integer, long etc. keys.

For all other types of keys, this class must be either partially or completely specialized.

Author
  M.Frank CERN/LHCb

Version
  1.0

Definition at line 38 of file KeyedTraits.h.

## Member Typedef Documentation

template<class KEY>

typedef KEY Containers::key_traits< KEY >::key_type

Declaration of key-type.

Definition at line 73 of file KeyedTraits.h.

template<class KEY>

typedef KeyedObject<key_type> Containers::key_traits< KEY >::obj_type

Declaration of keyed object type.

Definition at line 75 of file KeyedTraits.h.

## Member Function Documentation

template<class KEY>

static long Containers::key_traits< KEY >::addRef | ( | obj_type * | v | ) |
| inline static

Add reference counter to object when inserted into the container.

Definition at line 104 of file KeyedTraits.h.

104 { return ( v ) ? v->addRef() : 0; }
template<class KEY>

static bool Containers::key_traits< KEY >::checkKey | ( | obj_type * | v,
|  | const key_type & | k
| ) |  |
| inline static

Check the validity of the object's key.

Select if key-checks should be performed by switching on/off the macro CHECK_KEYED_CONTAINER.

Definition at line 95 of file KeyedTraits.h.

96 {
97 #ifdef CHECK_KEYED_CONTAINER
98 return ( v ) ? ( hash( v->key() ) == hash( k ) ) : false;
99 #else
100 return true;
101 #endif
102 }
Containers::key_traits::hash
static long hash(const key_type &key_value)
Hash function for this key.
Definition: KeyedTraits.h:85
template<class KEY>

static long Containers::key_traits< KEY >::hash | ( | const key_type & | key_value | ) |
| inline static

Hash function for this key.

Definition at line 85 of file KeyedTraits.h.

85 { return key_value; }
template<class KEY>

static long Containers::key_traits< KEY >::identifier | ( | const key_type & | k | ) |
| inline static

Full unhashed key identifier.

Definition at line 83 of file KeyedTraits.h.

83 { return k; }
template<class KEY>

static key_type Containers::key_traits< KEY >::makeKey | ( | long | k | ) |
| inline static

Create key from its full integer representation.

Not implementing on specialization may inhibit the creation of keys, i.e. then a key must be supplied at insertion time.

Definition at line 80 of file KeyedTraits.h.

80 { return key_type( k ); }
Containers::key_traits::key_type
KEY key_type
Declaration of key-type.
Definition: KeyedTraits.h:73
template<class KEY>

static key_type Containers::key_traits< KEY >::makeKey | ( | int | k | ) |
| inline static

Definition at line 81 of file KeyedTraits.h.

81 { return key_type( k ); }
Containers::key_traits::key_type
KEY key_type
Declaration of key-type.
Definition: KeyedTraits.h:73
template<class KEY>

static long Containers::key_traits< KEY >::release | ( | obj_type * | v | ) |
| inline static

Release reference to object.

Definition at line 106 of file KeyedTraits.h.

106 { return ( v ) ? v->release() : 0; }
template<class KEY>

static void Containers::key_traits< KEY >::setKey | ( | obj_type * | v,
|  | const key_type & | k
| ) |  |
| inline static

Set object key when inserted into the container.

Definition at line 87 of file KeyedTraits.h.

88 {
89 if ( v ) v->setKey( k );
90 }

The documentation for this struct was generated from the following file:

- GaudiKernel/GaudiKernel/KeyedTraits.h