Gaudi Framework, version v22r4

Home   Generated: Fri Sep 2 2011
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:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines

Generated at Fri Sep 2 2011 16:25:28 for Gaudi Framework, version v22r4 by Doxygen version 1.7.2 written by Dimitri van Heesch, © 1997-2004