|
Gaudi Framework, version v21r8 |
| Home | Generated: 17 Mar 2010 |
#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 |
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.
Definition at line 56 of file IInterface.h.
| InterfaceID::InterfaceID | ( | unsigned long | id, | |
| unsigned long | major, | |||
| unsigned long | minor = 0 | |||
| ) | [inline] |
constructor from components
Definition at line 65 of file IInterface.h.
00066 : 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.
00069 : m_id( hash32(name) ), m_major_ver( major ), m_minor_ver( minor ) { }
| InterfaceID::~InterfaceID | ( | ) | [inline] |
| unsigned long InterfaceID::id | ( | ) | const [inline] |
| unsigned long InterfaceID::majorVersion | ( | ) | const [inline] |
get the major version of the interface
Definition at line 81 of file IInterface.h.
00081 { 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.
00083 { return m_minor_ver; }
| 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.
00087 { 00088 return ( id() == iid.id() && 00089 majorVersion() == iid.majorVersion() && 00090 minorVersion() >= iid.minorVersion() ); 00091 }
| bool InterfaceID::fullMatch | ( | const InterfaceID & | iid | ) | const [inline] |
check full compatibility.
Definition at line 93 of file IInterface.h.
00093 { 00094 return ( id() == iid.id() && 00095 majorVersion() == iid.majorVersion() && 00096 minorVersion() == iid.minorVersion() ); 00097 }
| bool InterfaceID::operator== | ( | const InterfaceID & | iid | ) | const [inline] |
| static unsigned int InterfaceID::hash32 | ( | const char * | key | ) | [inline, static] |
one-at-time hash function
Definition at line 101 of file IInterface.h.
00101 { 00102 unsigned int hash; 00103 const char* k; 00104 for (hash = 0, k = key; *k; k++) { 00105 hash += *k; hash += (hash << 10); hash ^= (hash >> 6); 00106 } 00107 hash += (hash << 3); hash ^= (hash >> 11); hash += (hash << 15); 00108 return hash; 00109 }
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.