1 #ifndef GAUDIKERNEL_EXTENDS_H
2 #define GAUDIKERNEL_EXTENDS_H
9 template <
typename BASE,
typename I1>
21 template <
typename A1,
typename A2,
typename A3>
extends1(A1 a1, A2 a2, A3 a3): BASE(a1,a2,a3){}
23 template <
typename A1,
typename A2>
extends1(A1 a1, A2 a2): BASE(a1, a2){}
25 template <
typename A1>
extends1(A1 a1): BASE(a1){}
34 mpl::for_each<interfaces>(matcher);
37 ptr = BASE::i_cast(tid);
48 mpl::for_each<interfaces>(matcher);
50 return BASE::queryInterface(ti,pp);
59 std::vector<std::string> v = BASE::getInterfaceNames();
62 mpl::for_each<interfaces>(appender);
74 template <
typename BASE,
typename I1,
typename I2>
86 template <
typename A1,
typename A2,
typename A3>
extends2(A1 a1, A2 a2, A3 a3): BASE(a1,a2,a3){}
88 template <
typename A1,
typename A2>
extends2(A1 a1, A2 a2): BASE(a1, a2){}
90 template <
typename A1>
extends2(A1 a1): BASE(a1){}
99 mpl::for_each<interfaces>(matcher);
102 ptr = BASE::i_cast(tid);
113 mpl::for_each<interfaces>(matcher);
115 return BASE::queryInterface(ti,pp);
124 std::vector<std::string> v = BASE::getInterfaceNames();
127 mpl::for_each<interfaces>(appender);
139 template <
typename BASE,
typename I1,
typename I2,
typename I3>
151 template <
typename A1,
typename A2,
typename A3>
extends3(A1 a1, A2 a2, A3 a3): BASE(a1,a2,a3){}
153 template <
typename A1,
typename A2>
extends3(A1 a1, A2 a2): BASE(a1, a2){}
164 mpl::for_each<interfaces>(matcher);
167 ptr = BASE::i_cast(tid);
178 mpl::for_each<interfaces>(matcher);
180 return BASE::queryInterface(ti,pp);
189 std::vector<std::string> v = BASE::getInterfaceNames();
192 mpl::for_each<interfaces>(appender);
extends2(A1 a1, A2 a2)
Templated constructor with 2 arguments.
Base class to be used to extend an interface.
Base class to be used to extend an interface.
mpl::fold< typename IDataProviderSvc::iid::iids::type, typename IDataManagerSvc::iid::iids::type, mpl::insert< mpl::_1, mpl::_2 > >::type ext_iids
MPL set of interfaces extended by this one.
Helper class for the cast used in the MPL for_each algorithm in the implementation of queryInterface...
extends3(A1 a1, A2 a2, A3 a3)
Templated constructor with 3 arguments.
extends2 base_class
Typedef to this class.
virtual StatusCode queryInterface(const InterfaceID &ti, void **pp)
Implementation of IInterface::queryInterface.
virtual void * i_cast(const InterfaceID &tid) const
Implementation of IInterface::i_cast.
extend_interfaces1< I1 > extend_interfaces_base
Typedef to the base of this class.
extends2()
Default constructor.
extends3(A1 a1)
Templated constructor with 1 argument.
extends1(A1 a1)
Templated constructor with 1 argument.
virtual void * i_cast(const InterfaceID &tid) const
Implementation of IInterface::i_cast.
extends1(A1 a1, A2 a2, A3 a3)
Templated constructor with 3 arguments.
virtual ~extends1()
Virtual destructor.
Base class used to extend a class implementing other interfaces.
extends1 base_class
Typedef to this class.
virtual std::vector< std::string > getInterfaceNames() const
Implementation of IInterface::getInterfaceNames.
virtual void * i_cast(const InterfaceID &tid) const
Implementation of IInterface::i_cast.
Base class used to extend a class implementing other interfaces.
extend_interfaces_base::ext_iids interfaces
MPL set of all the implemented interfaces.
extends2(A1 a1, A2 a2, A3 a3)
Templated constructor with 3 arguments.
extend_interfaces_base::ext_iids interfaces
MPL set of all the implemented interfaces.
virtual std::vector< std::string > getInterfaceNames() const
Implementation of IInterface::getInterfaceNames.
extends1()
Default constructor.
virtual ~extends3()
Virtual destructor.
virtual StatusCode queryInterface(const InterfaceID &ti, void **pp)
Implementation of IInterface::queryInterface.
This class is used for returning status codes from appropriate routines.
Base class used to extend a class implementing other interfaces.
virtual ~extends2()
Virtual destructor.
extends3()
Default constructor.
IEqSolver::iid::iids::type ext_iids
MPL set of interfaces extended by this one.
extend_interfaces3< I1, I2, I3 > extend_interfaces_base
Typedef to the base of this class.
extends3 base_class
Typedef to this class.
extends3(A1 a1, A2 a2)
Templated constructor with 2 arguments.
virtual std::vector< std::string > getInterfaceNames() const
Implementation of IInterface::getInterfaceNames.
extend_interfaces_base::ext_iids interfaces
MPL set of all the implemented interfaces.
extends2(A1 a1)
Templated constructor with 1 argument.
Base class to be used to extend an interface.
extends1(A1 a1, A2 a2)
Templated constructor with 2 arguments.
virtual StatusCode queryInterface(const InterfaceID &ti, void **pp)
Implementation of IInterface::queryInterface.
extend_interfaces2< I1, I2 > extend_interfaces_base
Typedef to the base of this class.
Helper class for the cast used in the MPL for_each algorithm in the implementation of query_interface...
mpl::fold< typename IRndmEngine::iid::iids::type, typename mpl::fold< typename ISerialize::iid::iids::type, typename IIncidentListener::iid::iids::type, mpl::insert< mpl::_1, mpl::_2 > >::type, mpl::insert< mpl::_1, mpl::_2 > >::type ext_iids
MPL set of interfaces extended by this one.