|
Gaudi Framework, version v22r0 |
| Home | Generated: 9 Feb 2011 |
Base class used to extend a class implementing other interfaces. More...
#include <extends.h>


Public Types | |
| typedef extends3 | base_class |
| Typedef to this class. | |
| typedef extend_interfaces3< I1, I2, I3 > | 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 > | |
| extends3 (A1 a1, A2 a2, A3 a3) | |
| Templated constructor with 3 arguments. | |
| template<typename A1 , typename A2 > | |
| extends3 (A1 a1, A2 a2) | |
| Templated constructor with 2 arguments. | |
| template<typename A1 > | |
| extends3 (A1 a1) | |
| Templated constructor with 1 argument. | |
| extends3 () | |
| 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::string > | getInterfaceNames () const |
| Implementation of IInterface::getInterfaceNames. | |
| virtual | ~extends3 () |
| Virtual destructor. | |
Base class used to extend a class implementing other interfaces.
Version for three interfaces.
Definition at line 140 of file extends.h.
| typedef extends3 extends3< BASE, I1, I2, I3 >::base_class |
| typedef extend_interfaces3<I1,I2,I3> extends3< BASE, I1, I2, I3 >::extend_interfaces_base |
| typedef extend_interfaces_base::ext_iids extends3< BASE, I1, I2, I3 >::interfaces |
| virtual std::vector<std::string> extends3< BASE, I1, I2, I3 >::getInterfaceNames | ( | ) | const [inline, virtual] |
Implementation of IInterface::getInterfaceNames.
Definition at line 188 of file extends.h.
00188 { 00189 std::vector<std::string> v = BASE::getInterfaceNames(); // start from the base 00190 #ifndef __GCCXML__ 00191 AppendInterfaceName appender(v); 00192 mpl::for_each<interfaces>(appender); 00193 #endif 00194 return v; 00195 }
| virtual void* extends3< BASE, I1, I2, I3 >::i_cast | ( | const std::type_info & | tid | ) | const [inline, virtual] |
Implementation of IInterface::i_cast.
Definition at line 160 of file extends.h.
00160 { 00161 void *ptr = 0; 00162 #ifndef __GCCXML__ 00163 check_cast<base_class> caster(this,tid,ptr); 00164 mpl::for_each<interfaces>(caster); 00165 #endif 00166 if (!ptr) { 00167 ptr = BASE::i_cast(tid); 00168 } 00169 return ptr; 00170 }
| virtual StatusCode extends3< BASE, I1, I2, I3 >::queryInterface | ( | const InterfaceID & | ti, | |
| void ** | pp | |||
| ) | [inline, virtual] |
Implementation of IInterface::queryInterface.
Definition at line 173 of file extends.h.
00173 { 00174 if (!pp) return StatusCode::FAILURE; 00175 *pp = 0; 00176 #ifndef __GCCXML__ 00177 interfaceMatch<base_class> matcher(this,ti,*pp); 00178 mpl::for_each<interfaces>(matcher); 00179 if (!*pp) { // cast failed, try the base class 00180 return BASE::queryInterface(ti,pp); 00181 } 00182 this->addRef(); 00183 #endif 00184 return StatusCode::SUCCESS; 00185 }