Gaudi Framework, version v23r6

Home   Generated: Wed Jan 30 2013
 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 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)
inlinestatic

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:

Generated at Wed Jan 30 2013 17:13:47 for Gaudi Framework, version v23r6 by Doxygen version 1.8.2 written by Dimitri van Heesch, © 1997-2004