| # Gaudi Framework, version v20r4
Generated: 8 Jan 2009

# IFactory Class Reference

`#include <GaudiKernel/IFactory.h>`

Inheritance diagram for IFactory:

[legend]
Collaboration diagram for IFactory:

[legend]

List of all members.

## Detailed Description

The IFactory is the interface used to create contrete instances of Objectes.

It can be used to create Services, Algorithms, Converters, ...

Author:
  Pere Mato

Definition at line 21 of file IFactory.h.

## Public Member Functions
virtual IInterface * | instantiate (IInterface *parent) const =0
| Instantiate an instance of a Gaudi class.
virtual unsigned long | addRef () const =0
virtual unsigned long | release () const =0
virtual unsigned long | addRef ()=0
| Re-declaring these here avoids a compiler warning about hidden functions.
virtual unsigned long | release ()=0
| Release Interface instance.
virtual const std::string & | ident () const =0
## Static Public Member Functions
static const InterfaceID & | interfaceID ()
| Retrieve interface ID.

## Member Function Documentation

static const InterfaceID& IFactory::interfaceID | ( |  | ) | `[inline, static]`

Retrieve interface ID.

Reimplemented from IInterface.

Definition at line 24 of file IFactory.h.

    00024 { return IID_IFactory; }

virtual IInterface* IFactory::instantiate | ( | IInterface * | parent | ) | const`[pure virtual]`

Instantiate an instance of a Gaudi class.

virtual unsigned long IFactory::addRef | ( |  | ) | const`[pure virtual]`

virtual unsigned long IFactory::release | ( |  | ) | const`[pure virtual]`

virtual unsigned long IFactory::addRef | ( |  | ) | `[pure virtual]`

Re-declaring these here avoids a compiler warning about hidden functions.

Refer to ARM Page 210. Increment the reference count of Interface instance

Implements IInterface.

virtual unsigned long IFactory::release | ( |  | ) | `[pure virtual]`

Release Interface instance.

Implements IInterface.

virtual const std::string& IFactory::ident | ( |  | ) | const`[pure virtual]`

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

- /afs/cern.ch/sw/Gaudi/releases/GAUDI/GAUDI_v20r4/GaudiKernel/GaudiKernel/IFactory.h