Gaudi Framework, version v25r2

Home   Generated: Wed Jun 4 2014
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Public Types | Public Member Functions | List of all members
extends1< BASE, I1 > Struct Template Reference

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

#include <extends.h>

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

Public Types

typedef extends1 base_class
 Typedef to this class.
 
typedef extend_interfaces1< I1 > 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 Types inherited from extend_interfaces1< I1 >
typedef I1::iid::iids::type ext_iids
 MPL set of interfaces extended by this one.
 

Public Member Functions

template<typename A1 , typename A2 , typename A3 >
 extends1 (A1 a1, A2 a2, A3 a3)
 Templated constructor with 3 arguments.
 
template<typename A1 , typename A2 >
 extends1 (A1 a1, A2 a2)
 Templated constructor with 2 arguments.
 
template<typename A1 >
 extends1 (A1 a1)
 Templated constructor with 1 argument.
 
 extends1 ()
 Default constructor.
 
virtual void * i_cast (const InterfaceID &tid) const
 Implementation of IInterface::i_cast.
 
virtual StatusCode queryInterface (const InterfaceID &ti, void **pp)
 Implementation of IInterface::queryInterface.
 
virtual std::vector< std::string > getInterfaceNames () const
 Implementation of IInterface::getInterfaceNames.
 
virtual ~extends1 ()
 Virtual destructor.
 
- Public Member Functions inherited from extend_interfaces1< I1 >
virtual ~extend_interfaces1 ()
 Virtual destructor.
 

Detailed Description

template<typename BASE, typename I1>
struct extends1< BASE, I1 >

Base class used to extend a class implementing other interfaces.

Version for one interface.

Author
Marco Clemencic

Definition at line 10 of file extends.h.

Member Typedef Documentation

template<typename BASE, typename I1>
typedef extends1 extends1< BASE, I1 >::base_class

Typedef to this class.

Definition at line 12 of file extends.h.

template<typename BASE, typename I1>
typedef extend_interfaces1<I1> extends1< BASE, I1 >::extend_interfaces_base

Typedef to the base of this class.

Definition at line 14 of file extends.h.

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

MPL set of all the implemented interfaces.

Definition at line 17 of file extends.h.

Constructor & Destructor Documentation

template<typename BASE, typename I1>
template<typename A1 , typename A2 , typename A3 >
extends1< BASE, I1 >::extends1 ( A1  a1,
A2  a2,
A3  a3 
)
inline

Templated constructor with 3 arguments.

Definition at line 21 of file extends.h.

: BASE(a1,a2,a3){}
template<typename BASE, typename I1>
template<typename A1 , typename A2 >
extends1< BASE, I1 >::extends1 ( A1  a1,
A2  a2 
)
inline

Templated constructor with 2 arguments.

Definition at line 23 of file extends.h.

: BASE(a1, a2){}
template<typename BASE, typename I1>
template<typename A1 >
extends1< BASE, I1 >::extends1 ( A1  a1)
inline

Templated constructor with 1 argument.

Definition at line 25 of file extends.h.

: BASE(a1){}
template<typename BASE, typename I1>
extends1< BASE, I1 >::extends1 ( )
inline

Default constructor.

Definition at line 27 of file extends.h.

: BASE(){}
template<typename BASE, typename I1>
virtual extends1< BASE, I1 >::~extends1 ( )
inlinevirtual

Virtual destructor.

Definition at line 68 of file extends.h.

{}

Member Function Documentation

template<typename BASE, typename I1>
virtual std::vector<std::string> extends1< BASE, I1 >::getInterfaceNames ( ) const
inlinevirtual

Implementation of IInterface::getInterfaceNames.

Definition at line 58 of file extends.h.

{
std::vector<std::string> v = BASE::getInterfaceNames(); // start from the base
#ifndef __GCCXML__
AppendInterfaceName appender(v);
mpl::for_each<interfaces>(appender);
#endif
return v;
}
template<typename BASE, typename I1>
virtual void* extends1< BASE, I1 >::i_cast ( const InterfaceID tid) const
inlinevirtual

Implementation of IInterface::i_cast.

Definition at line 30 of file extends.h.

{
void *ptr = 0;
#ifndef __GCCXML__
interfaceMatch<base_class> matcher(this,tid,ptr);
mpl::for_each<interfaces>(matcher);
#endif
if (!ptr) {
ptr = BASE::i_cast(tid);
}
return ptr;
}
template<typename BASE, typename I1>
virtual StatusCode extends1< BASE, I1 >::queryInterface ( const InterfaceID ti,
void **  pp 
)
inlinevirtual

Implementation of IInterface::queryInterface.

Definition at line 43 of file extends.h.

{
if (!pp) return StatusCode::FAILURE;
*pp = 0;
#ifndef __GCCXML__
interfaceMatch<base_class> matcher(this,ti,*pp);
mpl::for_each<interfaces>(matcher);
if (!*pp) { // cast failed, try the base class
return BASE::queryInterface(ti,pp);
}
this->addRef();
#endif
}

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

Generated at Wed Jun 4 2014 14:49:01 for Gaudi Framework, version v25r2 by Doxygen version 1.8.2 written by Dimitri van Heesch, © 1997-2004