| # Gaudi Framework, version v25r0 |

Home |  | Generated: Mon Feb 17 2014

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

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

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Public Member Functions | Static Public Member Functions | Private Attributes | List of all members
InterfaceID Class Reference

Interface ID class. More...

`#include <GaudiKernel/Kernel.h>`

## Public Member Functions
| InterfaceID (unsigned long id, unsigned long major, unsigned long minor=0)
| constructor from components
| InterfaceID (const char *name, unsigned long major, unsigned long minor=0)
| constructor from components
| ~InterfaceID ()
| destructor
unsigned long | id () const
| get the interface identifier
unsigned long | majorVersion () const
| get the major version of the interface
unsigned long | minorVersion () const
| get the minor version of the interface
bool | versionMatch (const InterfaceID &iid) const
| check compatibility.
bool | fullMatch (const InterfaceID &iid) const
| check full compatibility.
bool | operator== (const InterfaceID &iid) const
| compare operator

## Static Public Member Functions
static unsigned int | hash32 (const char *key)
| one-at-time hash function

## Private Attributes
unsigned long | m_id
unsigned long | m_major_ver
unsigned long | m_minor_ver

## Detailed Description

Interface ID class.

It consists of several fields: interface number, major version number and minor version number. Interface number should be allocated globally. The major and minor version numbers are used for checking compatibility between interface versions.

Author
  Pere Mato
  Sebastien Ponce

Definition at line 55 of file IInterface.h.

## Constructor & Destructor Documentation

InterfaceID::InterfaceID | ( | unsigned long | id,
|  | unsigned long | major,
|  | unsigned long | minor = `0`
| ) |  |
| inline

constructor from components

Definition at line 64 of file IInterface.h.

: m_id( id ), m_major_ver( major ), m_minor_ver( minor ) { }

InterfaceID::InterfaceID | ( | const char * | name,
|  | unsigned long | major,
|  | unsigned long | minor = `0`
| ) |  |
| inline

constructor from components

Definition at line 67 of file IInterface.h.

: m_id( hash32(name) ), m_major_ver( major ), m_minor_ver( minor ) { }

InterfaceID::~InterfaceID | ( |  | ) |
| inline

destructor

Definition at line 70 of file IInterface.h.

{ }

## Member Function Documentation

bool InterfaceID::fullMatch | ( | const InterfaceID & | iid | ) | const
| inline

check full compatibility.

Definition at line 92 of file IInterface.h.

{
return ( id() == iid.id() &&
majorVersion() == iid.majorVersion() &&
minorVersion() == iid.minorVersion() );
}

static unsigned int InterfaceID::hash32 | ( | const char * | key | ) |
| inline static

one-at-time hash function

Definition at line 100 of file IInterface.h.

{
unsigned int hash;
const char* k;
for (hash = 0, k = key; *k; k++) {
hash += *k; hash += (hash << 10); hash ^= (hash >> 6);
}
hash += (hash << 3); hash ^= (hash >> 11); hash += (hash << 15);
return hash;
}

unsigned long InterfaceID::id | ( |  | ) | const
| inline

get the interface identifier

Definition at line 78 of file IInterface.h.

{ return m_id; }

unsigned long InterfaceID::majorVersion | ( |  | ) | const
| inline

get the major version of the interface

Definition at line 80 of file IInterface.h.

{ return m_major_ver; }

unsigned long InterfaceID::minorVersion | ( |  | ) | const
| inline

get the minor version of the interface

Definition at line 82 of file IInterface.h.

{ return m_minor_ver; }

bool InterfaceID::operator== | ( | const InterfaceID & | iid | ) | const
| inline

compare operator

Definition at line 98 of file IInterface.h.

{ return fullMatch(iid); }

bool InterfaceID::versionMatch | ( | const InterfaceID & | iid | ) | const
| inline

check compatibility.

The major version is check and the minor one should be bigger or equal

Definition at line 86 of file IInterface.h.

{
return ( id() == iid.id() &&
majorVersion() == iid.majorVersion() &&
minorVersion() >= iid.minorVersion() );
}

## Member Data Documentation

unsigned long InterfaceID::m_id
| private

Definition at line 111 of file IInterface.h.

unsigned long InterfaceID::m_major_ver
| private

Definition at line 112 of file IInterface.h.

unsigned long InterfaceID::m_minor_ver
| private

Definition at line 113 of file IInterface.h.

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

- /afs/cern.ch/sw/Gaudi/releases/GAUDI/GAUDI_v25r0/GaudiKernel/GaudiKernel/IInterface.h