Gaudi Framework, version v22r0

Home   Generated: 9 Feb 2011

extends2< BASE, I1, I2 > Struct Template Reference

Base class used to extend a class implementing other interfaces. More...

#include <extends.h>

Inheritance diagram for extends2< BASE, I1, I2 >:
Inheritance graph
[legend]
Collaboration diagram for extends2< BASE, I1, I2 >:
Collaboration graph
[legend]

List of all members.

Public Types

typedef extends2 base_class
 Typedef to this class.
typedef extend_interfaces2< I1,
I2 > 
extend_interfaces_base
 Typedef to the base of this class.
typedef
extend_interfaces_base::ext_iids 
interfaces
 MPL set of all the implemented interfaces.

Public Member Functions

template<typename A1 , typename A2 , typename A3 >
 extends2 (A1 a1, A2 a2, A3 a3)
 Templated constructor with 3 arguments.
template<typename A1 , typename A2 >
 extends2 (A1 a1, A2 a2)
 Templated constructor with 2 arguments.
template<typename A1 >
 extends2 (A1 a1)
 Templated constructor with 1 argument.
 extends2 ()
 Default constructor.
virtual void * i_cast (const std::type_info &tid) const
 Implementation of IInterface::i_cast.
virtual StatusCode queryInterface (const InterfaceID &ti, void **pp)
 Implementation of IInterface::queryInterface.
virtual std::vector< std::stringgetInterfaceNames () const
 Implementation of IInterface::getInterfaceNames.
virtual ~extends2 ()
 Virtual destructor.

Detailed Description

template<typename BASE, typename I1, typename I2>
struct extends2< BASE, I1, I2 >

Base class used to extend a class implementing other interfaces.

Version for two interfaces.

Author:
Marco Clemencic

Definition at line 75 of file extends.h.


Member Typedef Documentation

template<typename BASE, typename I1, typename I2>
typedef extends2 extends2< BASE, I1, I2 >::base_class
template<typename BASE, typename I1, typename I2>
typedef extend_interfaces2<I1,I2> extends2< BASE, I1, I2 >::extend_interfaces_base

Typedef to the base of this class.

Reimplemented in extends1< DataSvc, IIncidentListener >, extends1< ConversionSvc, IPoolDbMgr >, and extends2< DataSvc, IDetDataSvc, IIncidentListener >.

Definition at line 79 of file extends.h.

template<typename BASE, typename I1, typename I2>
typedef extend_interfaces_base::ext_iids extends2< BASE, I1, I2 >::interfaces

MPL set of all the implemented interfaces.

Reimplemented in extends1< DataSvc, IIncidentListener >, extends1< ConversionSvc, IPoolDbMgr >, and extends2< DataSvc, IDetDataSvc, IIncidentListener >.

Definition at line 82 of file extends.h.


Constructor & Destructor Documentation

template<typename BASE, typename I1, typename I2>
template<typename A1 , typename A2 , typename A3 >
extends2< BASE, I1, I2 >::extends2 ( A1  a1,
A2  a2,
A3  a3 
) [inline]

Templated constructor with 3 arguments.

Reimplemented in extends2< DataSvc, IDetDataSvc, IIncidentListener >.

Definition at line 86 of file extends.h.

00086 : BASE(a1,a2,a3){}

template<typename BASE, typename I1, typename I2>
template<typename A1 , typename A2 >
extends2< BASE, I1, I2 >::extends2 ( A1  a1,
A2  a2 
) [inline]

Templated constructor with 2 arguments.

Reimplemented in extends2< DataSvc, IDetDataSvc, IIncidentListener >.

Definition at line 88 of file extends.h.

00088 : BASE(a1, a2){}

template<typename BASE, typename I1, typename I2>
template<typename A1 >
extends2< BASE, I1, I2 >::extends2 ( A1  a1  )  [inline]

Templated constructor with 1 argument.

Reimplemented in extends2< DataSvc, IDetDataSvc, IIncidentListener >.

Definition at line 90 of file extends.h.

00090 : BASE(a1){}

template<typename BASE, typename I1, typename I2>
extends2< BASE, I1, I2 >::extends2 (  )  [inline]

Default constructor.

Reimplemented in extends2< DataSvc, IDetDataSvc, IIncidentListener >.

Definition at line 92 of file extends.h.

00092 : BASE(){}

template<typename BASE, typename I1, typename I2>
virtual extends2< BASE, I1, I2 >::~extends2 (  )  [inline, virtual]

Virtual destructor.

Reimplemented in extends2< DataSvc, IDetDataSvc, IIncidentListener >.

Definition at line 133 of file extends.h.

00133 {}


Member Function Documentation

template<typename BASE, typename I1, typename I2>
virtual std::vector<std::string> extends2< BASE, I1, I2 >::getInterfaceNames (  )  const [inline, virtual]

Implementation of IInterface::getInterfaceNames.

Reimplemented in extends1< DataSvc, IIncidentListener >, extends1< ConversionSvc, IPoolDbMgr >, and extends2< DataSvc, IDetDataSvc, IIncidentListener >.

Definition at line 123 of file extends.h.

00123                                                          {
00124     std::vector<std::string> v = BASE::getInterfaceNames(); // start from the base
00125 #ifndef __GCCXML__
00126     AppendInterfaceName appender(v);
00127     mpl::for_each<interfaces>(appender);
00128 #endif
00129     return v;
00130   }

template<typename BASE, typename I1, typename I2>
virtual void* extends2< BASE, I1, I2 >::i_cast ( const std::type_info tid  )  const [inline, virtual]

Implementation of IInterface::i_cast.

Reimplemented in extends1< DataSvc, IIncidentListener >, extends1< ConversionSvc, IPoolDbMgr >, and extends2< DataSvc, IDetDataSvc, IIncidentListener >.

Definition at line 95 of file extends.h.

00095                                                       {
00096     void *ptr = 0;
00097 #ifndef __GCCXML__
00098     check_cast<base_class> caster(this,tid,ptr);
00099     mpl::for_each<interfaces>(caster);
00100 #endif
00101     if (!ptr) {
00102       ptr = BASE::i_cast(tid);
00103     }
00104     return ptr;
00105   }

template<typename BASE, typename I1, typename I2>
virtual StatusCode extends2< BASE, I1, I2 >::queryInterface ( const InterfaceID ti,
void **  pp 
) [inline, virtual]

Implementation of IInterface::queryInterface.

Reimplemented in extends1< DataSvc, IIncidentListener >, extends1< ConversionSvc, IPoolDbMgr >, and extends2< DataSvc, IDetDataSvc, IIncidentListener >.

Definition at line 108 of file extends.h.

00108                                                                      {
00109     if (!pp) return StatusCode::FAILURE;
00110     *pp = 0;
00111 #ifndef __GCCXML__
00112     interfaceMatch<base_class> matcher(this,ti,*pp);
00113     mpl::for_each<interfaces>(matcher);
00114     if (!*pp) { // cast failed, try the base class
00115       return BASE::queryInterface(ti,pp);
00116     }
00117     this->addRef();
00118 #endif
00119     return StatusCode::SUCCESS;
00120   }


The documentation for this struct was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines

Generated at Wed Feb 9 16:30:36 2011 for Gaudi Framework, version v22r0 by Doxygen version 1.6.2 written by Dimitri van Heesch, © 1997-2004