All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
IFactory.h
Go to the documentation of this file.
1 // $Header: /tmp/svngaudi/tmp.jEpFh25751/Gaudi/GaudiKernel/GaudiKernel/IFactory.h,v 1.4 2001/02/23 16:12:10 dquarrie Exp $
2 #ifndef GAUDIKERNEL_IFACTORY_H
3 #define GAUDIKERNEL_IFACTORY_H
4 
5 // Include files
7 #include <string>
8 #include <vector>
9 
17 class GAUDI_API IFactory: virtual public IInterface {
18 public:
21 
23  virtual IInterface* instantiate( IInterface *parent ) const = 0;
24  virtual unsigned long addRef() const = 0;
25  virtual unsigned long release() const = 0;
26 
30  virtual unsigned long addRef() = 0;
32  virtual unsigned long release() = 0;
33 
34  virtual const std::string& ident() const = 0;
35 
36 };
37 
38 #endif // GAUDIKERNEL_IFACTORY_H
Definition of the basic interface.
Definition: IInterface.h:160
#define DeclareInterfaceID(name, major, minor)
Macro to declare the interface ID when using the new mechanism of extending and implementing interfac...
Definition: IInterface.h:23
The IFactory is the interface used to create contrete instances of Objectes.
Definition: IFactory.h:17
virtual unsigned long release()=0
Release Interface instance.
virtual unsigned long addRef()=0
Increment the reference count of Interface instance.
#define GAUDI_API
Definition: Kernel.h:108