39 #ifndef ORO_COLLECT_HPP 40 #define ORO_COLLECT_HPP 43 #include "../SendStatus.hpp" 44 #include <boost/function.hpp> 45 #include <boost/type_traits.hpp> 51 template<
int,
class Ft,
class BaseImpl>
59 template<
class F,
class BaseImpl>
61 :
public CollectImpl< boost::function_traits< typename CollectType<F>::Ft >::arity, typename CollectType<F>::Ft, BaseImpl >
63 typedef typename boost::function_traits< F >::result_type
result_type;
68 return BaseImpl::collect_impl();
73 return BaseImpl::collectIfDone_impl();
78 return BaseImpl::ret_impl();
83 template<
class Ft,
class BaseImpl>
90 template<
class Ft,
class BaseImpl>
94 typedef typename boost::function<Ft>::arg1_type
arg1_type;
103 return BaseImpl::collect_impl();
112 return BaseImpl::collect_impl(a1);
116 return BaseImpl::collectIfDone_impl(a1);
120 template<
class Ft,
class BaseImpl>
124 typedef typename boost::function<Ft>::arg1_type
arg1_type;
125 typedef typename boost::function<Ft>::arg2_type
arg2_type;
134 return BaseImpl::collect_impl();
143 return BaseImpl::collect_impl(a1,a2);
147 return BaseImpl::collectIfDone_impl(a1,a2);
151 template<
class Ft,
class BaseImpl>
155 typedef typename boost::function<Ft>::arg1_type
arg1_type;
156 typedef typename boost::function<Ft>::arg2_type
arg2_type;
157 typedef typename boost::function<Ft>::arg3_type
arg3_type;
166 return BaseImpl::collect_impl();
175 return BaseImpl::collect_impl(a1,a2,a3);
179 return BaseImpl::collectIfDone_impl(a1,a2,a3);
183 template<
class Ft,
class BaseImpl>
187 typedef typename boost::function<Ft>::arg1_type
arg1_type;
188 typedef typename boost::function<Ft>::arg2_type
arg2_type;
189 typedef typename boost::function<Ft>::arg3_type
arg3_type;
190 typedef typename boost::function<Ft>::arg4_type
arg4_type;
199 return BaseImpl::collect_impl();
208 return BaseImpl::collect_impl(a1,a2,a3,a4);
212 return BaseImpl::collectIfDone_impl(a1,a2,a3,a4);
216 template<
class Ft,
class BaseImpl>
220 typedef typename boost::function<Ft>::arg1_type
arg1_type;
221 typedef typename boost::function<Ft>::arg2_type
arg2_type;
222 typedef typename boost::function<Ft>::arg3_type
arg3_type;
223 typedef typename boost::function<Ft>::arg4_type
arg4_type;
224 typedef typename boost::function<Ft>::arg5_type
arg5_type;
233 return BaseImpl::collect_impl();
240 virtual SendStatus collect(arg1_type a1, arg2_type a2, arg3_type a3, arg4_type a4, arg5_type a5)
242 return BaseImpl::collect_impl(a1,a2,a3,a4,a5);
246 return BaseImpl::collectIfDone_impl(a1,a2,a3,a4,a5);
250 template<
class Ft,
class BaseImpl>
254 typedef typename boost::function<Ft>::arg1_type
arg1_type;
255 typedef typename boost::function<Ft>::arg2_type
arg2_type;
256 typedef typename boost::function<Ft>::arg3_type
arg3_type;
257 typedef typename boost::function<Ft>::arg4_type
arg4_type;
258 typedef typename boost::function<Ft>::arg5_type
arg5_type;
259 typedef typename boost::function<Ft>::arg6_type
arg6_type;
268 return BaseImpl::collect_impl();
275 virtual SendStatus collect(arg1_type a1, arg2_type a2, arg3_type a3, arg4_type a4, arg5_type a5, arg6_type a6)
277 return BaseImpl::collect_impl(a1,a2,a3,a4,a5,a6);
281 return BaseImpl::collectIfDone_impl(a1,a2,a3,a4,a5,a6);
virtual SendStatus collectIfDone(arg1_type a1, arg2_type a2, arg3_type a3, arg4_type a4, arg5_type a5, arg6_type a6)
boost::function< Ft >::arg5_type arg5_type
virtual SendStatus collectIfDone(arg1_type a1, arg2_type a2, arg3_type a3)
boost::function< Ft >::arg1_type arg1_type
virtual SendStatus collect()
Collect F without returning the results.
ft::function_type< fttype >::type Ft
boost::function< Ft >::arg2_type arg2_type
virtual SendStatus collect()
Collect F without returning the results.
boost::function< Ft >::arg3_type arg3_type
virtual SendStatus collectIfDone(arg1_type a1, arg2_type a2, arg3_type a3, arg4_type a4)
boost::function< Ft >::arg1_type arg1_type
boost::function< Ft >::arg6_type arg6_type
virtual SendStatus collect(arg1_type a1, arg2_type a2)
Collect a void(arg1_type) F or arg1_type(void) F.
virtual SendStatus collectIfDone(arg1_type a1, arg2_type a2)
boost::function< Ft >::arg4_type arg4_type
boost::function< Ft >::arg2_type arg2_type
boost::function< Ft >::arg3_type arg3_type
virtual SendStatus collectIfDone(arg1_type a1)
virtual SendStatus collect(arg1_type a1, arg2_type a2, arg3_type a3)
Collect a void(arg1_type) F or arg1_type(void) F.
virtual SendStatus collect(arg1_type a1)
Collect a void(arg1_type) F or arg1_type(void) F.
boost::function< Ft >::arg3_type arg3_type
virtual SendStatus collect(arg1_type a1, arg2_type a2, arg3_type a3, arg4_type a4, arg5_type a5)
Collect a void(arg1_type) F or arg1_type(void) F.
SendStatus
Returns the status of a send() or collect() invocation.
boost::function< Ft >::arg2_type arg2_type
boost::function_traits< F >::result_type result_type
virtual SendStatus collectIfDone(arg1_type a1, arg2_type a2, arg3_type a3, arg4_type a4, arg5_type a5)
SendStatus collectIfDone()
virtual SendStatus collect()
Collect F without returning the results.
boost::function< Ft >::arg2_type arg2_type
boost::function< Ft >::arg1_type arg1_type
boost::function< Ft >::arg1_type arg1_type
This struct takes the user's Function signature F and transforms it to the form required in the Colle...
virtual SendStatus collect()
Collect F without returning the results.
boost::function< Ft >::arg3_type arg3_type
virtual SendStatus collect(arg1_type a1, arg2_type a2, arg3_type a3, arg4_type a4, arg5_type a5, arg6_type a6)
Collect a void(arg1_type) F or arg1_type(void) F.
boost::function< Ft >::arg2_type arg2_type
boost::function< Ft >::arg4_type arg4_type
virtual SendStatus collect()
Collect F without returning the results.
virtual SendStatus collect()
Collect F without returning the results.
Contains TaskContext, Activity, OperationCaller, Operation, Property, InputPort, OutputPort, Attribute.
boost::function< Ft >::arg1_type arg1_type
virtual SendStatus collect(arg1_type a1, arg2_type a2, arg3_type a3, arg4_type a4)
Collect a void(arg1_type) F or arg1_type(void) F.
boost::function< Ft >::arg5_type arg5_type
boost::function< Ft >::arg1_type arg1_type
boost::function< Ft >::arg4_type arg4_type