39 #ifndef ORO_EXECUTION_DATASOURCE_GENERATOR_HPP 40 #define ORO_EXECUTION_DATASOURCE_GENERATOR_HPP 43 #include <boost/utility/enable_if.hpp> 44 #include <boost/ref.hpp> 45 #include <boost/type_traits/is_base_of.hpp> 46 #include <boost/type_traits/remove_pointer.hpp> 52 template<
class T,
class Enable =
void >
58 struct DSWrap<T, typename
boost::enable_if< boost::is_base_of<base::DataSourceBase, typename boost::remove_pointer<T>::type > >::type > {
63 struct DSWrap<T, typename
boost::enable_if< boost::is_reference<T> >::type > {
68 struct DSWrap<T, typename
boost::enable_if< boost::is_reference_wrapper<T> >::type > {
69 typedef typename boost::unwrap_reference<T>::type
RT;
74 struct DSWrap<
boost::intrusive_ptr<T>, typename boost::enable_if< boost::is_base_of<base::DataSourceBase, typename boost::remove_pointer<T>::type > >::type >
98 std::vector<base::DataSourceBase::shared_ptr>
operator()(A1 a1)
100 std::vector<base::DataSourceBase::shared_ptr> res;
105 template<
class A1,
class A2>
106 std::vector<base::DataSourceBase::shared_ptr>
operator()(A1 a1, A2 a2 )
108 std::vector<base::DataSourceBase::shared_ptr> res =
operator()(a1);
113 template<
class A1,
class A2,
class A3>
114 std::vector<base::DataSourceBase::shared_ptr>
operator()(A1 a1, A2 a2, A3 a3 )
116 std::vector<base::DataSourceBase::shared_ptr> res =
operator()(a1,a2);
121 template<
class A1,
class A2,
class A3,
class A4>
122 std::vector<base::DataSourceBase::shared_ptr>
operator()(A1 a1, A2 a2, A3 a3, A4 a4 )
124 std::vector<base::DataSourceBase::shared_ptr> res =
operator()(a1,a2,a3);
129 template<
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
130 std::vector<base::DataSourceBase::shared_ptr>
operator()(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6 )
132 std::vector<base::DataSourceBase::shared_ptr> res =
operator()(a1,a2,a3,a4,a5);
137 template<
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7>
138 std::vector<base::DataSourceBase::shared_ptr>
operator()(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7 )
140 std::vector<base::DataSourceBase::shared_ptr> res =
operator()(a1,a2,a3,a4,a5,a6);
145 template<
class A1,
class A2,
class A3,
class A4,
class A5>
146 std::vector<base::DataSourceBase::shared_ptr>
operator()(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5 )
148 std::vector<base::DataSourceBase::shared_ptr> res =
operator()(a1,a2,a3,a4);
base::DataSourceBase::shared_ptr operator()(T t)
std::vector< base::DataSourceBase::shared_ptr > operator()(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5)
A function object which returns a vector of DataSources.
base::DataSourceBase::shared_ptr operator()(T t)
A DataSource which is used to manipulate a reference to an external value.
std::vector< base::DataSourceBase::shared_ptr > operator()(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7)
std::vector< base::DataSourceBase::shared_ptr > operator()(A1 a1, A2 a2, A3 a3, A4 a4)
std::vector< base::DataSourceBase::shared_ptr > operator()(A1 a1, A2 a2)
std::vector< base::DataSourceBase::shared_ptr > operator()(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6)
base::DataSourceBase::shared_ptr operator()(T t)
A DataSource which holds a constant value and returns it in its get() method.
std::vector< base::DataSourceBase::shared_ptr > operator()(A1 a1)
base::DataSourceBase::shared_ptr operator()(T t)
boost::intrusive_ptr< DataSourceBase > shared_ptr
Use this type to store a pointer to a DataSourceBase.
Contains TaskContext, Activity, OperationCaller, Operation, Property, InputPort, OutputPort, Attribute.
boost::unwrap_reference< T >::type RT
std::vector< base::DataSourceBase::shared_ptr > operator()(A1 a1, A2 a2, A3 a3)