Gaudi Framework, version v23r0

Home   Generated: Mon Jan 30 2012
Public Types | Public Member Functions | Static Public Member Functions

IInterface Class Reference

Definition of the basic interface. More...

#include <GaudiKernel/IInterface.h>

Inheritance diagram for IInterface:
Inheritance graph
[legend]

List of all members.

Public Types

enum  Status { SUCCESS = 1, NO_INTERFACE, VERSMISMATCH, LAST_ERROR }
 

Return status.

More...
typedef Gaudi::InterfaceId
< IInterface, 0, 0 > 
iid
 Interface ID.
typedef mpl::set1< iidext_iids
 Extra interfaces.

Public Member Functions

virtual void * i_cast (const InterfaceID &) const =0
 main cast function
virtual std::vector< std::stringgetInterfaceNames () const =0
 Returns a vector of strings containing the names of all the implemented interfaces.
virtual unsigned long addRef ()=0
 Increment the reference count of Interface instance.
virtual unsigned long release ()=0
 Release Interface instance.
virtual unsigned long refCount () const =0
 Current reference count.
virtual StatusCode queryInterface (const InterfaceID &ti, void **pp)=0
 Set the void** to the pointer to the requested interface of the instance.
virtual ~IInterface ()
 Virtual destructor.

Static Public Member Functions

static const InterfaceIDinterfaceID ()
 Return an instance of InterfaceID identifying the interface.

Detailed Description

Definition of the basic interface.

Author:
Pere Mato
Markus Frank
Marco Clemencic

Definition at line 161 of file IInterface.h.


Member Typedef Documentation

typedef mpl::set1<iid> IInterface::ext_iids

Extra interfaces.

Reimplemented in extend_interfaces1< IIoComponentMgr >, extend_interfaces1< IDataStreamTool >, extend_interfaces1< IFileAccess >, extend_interfaces1< IChronoStatSvc >, extend_interfaces1< IIssueLogger >, extend_interfaces1< IAlgManager >, extend_interfaces1< IStatusCodeSvc >, extend_interfaces1< IAuditorSvc >, extend_interfaces1< IProperty >, extend_interfaces1< IExceptionSvc >, extend_interfaces1< IClassManager >, extend_interfaces1< IGslErrorHandler >, extend_interfaces1< IEventProcessor >, extend_interfaces1< ISelectStatement >, extend_interfaces1< IConverter >, extend_interfaces1< IPartPropSvc >, extend_interfaces1< IParticlePropertySvc >, extend_interfaces1< ICounterSvc >, extend_interfaces1< IEvtSelector >, extend_interfaces1< IPartitionControl >, extend_interfaces1< Gaudi::ISignalMonitor >, extend_interfaces1< IToolSvc >, extend_interfaces1< IComponentManager >, extend_interfaces1< IRunable >, extend_interfaces1< IFuncMinimum >, extend_interfaces1< IGslSvc >, extend_interfaces1< ISvcLocator >, extend_interfaces1< IIncidentListener >, extend_interfaces1< IEqSolver >, extend_interfaces1< IRndmGen >, extend_interfaces1< IInterface >, extend_interfaces1< IHistogramSvc >, extend_interfaces1< IIncidentSvc >, extend_interfaces2< IAlgContextSvc, IIncidentListener >, extend_interfaces2< IAuditor, IProperty >, extend_interfaces2< IDataStoreLeaves, IIncidentListener >, extend_interfaces2< IDetDataSvc, IIncidentListener >, extend_interfaces2< ISvcManager, ISvcLocator >, extend_interfaces2< IConversionSvc, IAddressCreator >, extend_interfaces2< IDODAlgMapper, IDODNodeMapper >, extend_interfaces2< IService, IAuditor >, extend_interfaces2< INTupleSvc, IDataSourceMgr >, extend_interfaces2< IMessageSvc, IInactiveMessageCounter >, extend_interfaces2< IHistorySvc, IIncidentListener >, extend_interfaces2< IProperty, IJobOptionsSvc >, extend_interfaces2< IDataProviderSvc, IDataManagerSvc >, extend_interfaces3< IAlgTool, IProperty, IStateful >, extend_interfaces3< IDataProviderSvc, IDataManagerSvc, IPartitionControl >, extend_interfaces3< IRndmGenSvc, IRndmEngine, ISerialize >, extend_interfaces3< IConversionSvc, IPersistencySvc, IAddressCreator >, extend_interfaces3< IRndmEngine, ISerialize, IIncidentListener >, extend_interfaces3< IAlgorithm, IProperty, IStateful >, extend_interfaces3< ITHistSvc, IIncidentListener, IIoComponent >, extend_interfaces3< IService, IProperty, IStateful >, extend_interfaces3< IService, IChronoSvc, IStatSvc >, and extend_interfaces4< IAppMgrUI, IEventProcessor, IService, IStateful >.

Definition at line 168 of file IInterface.h.

typedef Gaudi::InterfaceId<IInterface,0,0> IInterface::iid

Interface ID.

Definition at line 165 of file IInterface.h.


Member Enumeration Documentation

Return status.

Enumerator:
SUCCESS 

Normal successful completion.

NO_INTERFACE 

Requested interface is not available.

VERSMISMATCH 

Requested interface version is incompatible.

LAST_ERROR 

Last error.

Reimplemented in IConversionSvc, IConverter, and IDataProviderSvc.

Definition at line 218 of file IInterface.h.


Constructor & Destructor Documentation

virtual IInterface::~IInterface (  ) [inline, virtual]

Virtual destructor.

Definition at line 230 of file IInterface.h.

{}

Member Function Documentation

virtual unsigned long IInterface::addRef (  ) [pure virtual]

Increment the reference count of Interface instance.

Implemented in IFactory.

virtual std::vector<std::string> IInterface::getInterfaceNames (  ) const [pure virtual]
virtual void* IInterface::i_cast ( const InterfaceID  ) const [pure virtual]
static const InterfaceID& IInterface::interfaceID (  ) [inline, static]

Return an instance of InterfaceID identifying the interface.

Definition at line 172 of file IInterface.h.

                                                {
#ifndef __GCCXML__
    return iid::interfaceID();
#else
    // GCCXML work-around
    static InterfaceID xx(0UL,0UL,0UL);
    return xx;
#endif
  }
virtual StatusCode IInterface::queryInterface ( const InterfaceID ti,
void **  pp 
) [pure virtual]
virtual unsigned long IInterface::refCount (  ) const [pure virtual]

Current reference count.

Implemented in IAlgTool.

virtual unsigned long IInterface::release (  ) [pure virtual]

Release Interface instance.

Implemented in IFactory.


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 Mon Jan 30 2012 13:53:17 for Gaudi Framework, version v23r0 by Doxygen version 1.7.2 written by Dimitri van Heesch, © 1997-2004