| # Gaudi Framework, version v23r1 |

Home |  | Generated: Wed Feb 29 2012

Public Member Functions | Static Public Member Functions | Private Attributes

# InterfaceID Class Reference

Interface ID class. More...

`#include <GaudiKernel/Kernel.h>`

List of all members.

## 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 56 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 65 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 68 of file IInterface.h.

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

InterfaceID::~InterfaceID | ( | ) | `[inline]`

destructor

Definition at line 71 of file IInterface.h.

    { }

## Member Function Documentation

bool InterfaceID::fullMatch | ( | const InterfaceID & | iid ) | const`[inline]`

check full compatibility.

Definition at line 93 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 101 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 79 of file IInterface.h.

    { return m_id; }

unsigned long InterfaceID::majorVersion | ( | ) | const`[inline]`

get the major version of the interface

Definition at line 81 of file IInterface.h.

    { return m_major_ver; }

unsigned long InterfaceID::minorVersion | ( | ) | const`[inline]`

get the minor version of the interface

Definition at line 83 of file IInterface.h.

    { return m_minor_ver; }

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

compare operator

Definition at line 99 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 87 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 112 of file IInterface.h.

unsigned long InterfaceID::m_major_ver`[private]`

Definition at line 113 of file IInterface.h.

unsigned long InterfaceID::m_minor_ver`[private]`

Definition at line 114 of file IInterface.h.

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

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

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines