39 #ifndef ORO_INVOKER_SIGNATURE_HPP 40 #define ORO_INVOKER_SIGNATURE_HPP 42 #include <boost/type_traits.hpp> 44 #include "../rtt-fwd.hpp" 57 template<
int,
class Signature,
class ToInvoke>
60 template<
class F,
class ToInvoke>
63 typedef typename boost::function_traits<F>::result_type
result_type;
94 template<
class F,
class ToInvoke>
97 typedef typename boost::function_traits<F>::result_type
result_type;
98 typedef typename boost::function_traits<F>::arg1_type
arg1_type;
110 return impl->call( a1 );
113 result_type
call(arg1_type a1) {
114 return operator()(a1);
120 return impl->send(a1);
128 template<
class F,
class ToInvoke>
131 typedef typename boost::function_traits<F>::result_type
result_type;
132 typedef typename boost::function_traits<F>::arg1_type
arg1_type;
133 typedef typename boost::function_traits<F>::arg2_type
arg2_type;
145 return impl->call(t1, t2);
149 result_type
call(arg1_type a1, arg2_type a2) {
150 return operator()(a1,a2);
156 return impl->send(a1,a2);
163 template<
class F,
class ToInvoke>
166 typedef typename boost::function_traits<F>::result_type
result_type;
167 typedef typename boost::function_traits<F>::arg1_type
arg1_type;
168 typedef typename boost::function_traits<F>::arg2_type
arg2_type;
169 typedef typename boost::function_traits<F>::arg3_type
arg3_type;
178 result_type
operator()(arg1_type t1, arg2_type t2, arg3_type t3)
181 return impl->call(t1, t2, t3);
185 result_type
call(arg1_type a1, arg2_type a2, arg3_type a3) {
186 return operator()(a1,a2,a3);
192 return impl->send(a1,a2,a3);
199 template<
class F,
class ToInvoke>
202 typedef typename boost::function_traits<F>::result_type
result_type;
203 typedef typename boost::function_traits<F>::arg1_type
arg1_type;
204 typedef typename boost::function_traits<F>::arg2_type
arg2_type;
205 typedef typename boost::function_traits<F>::arg3_type
arg3_type;
206 typedef typename boost::function_traits<F>::arg4_type
arg4_type;
215 result_type
operator()(arg1_type t1, arg2_type t2, arg3_type t3, arg4_type t4)
218 return impl->call(t1, t2, t3, t4);
222 result_type
call(arg1_type a1, arg2_type a2, arg3_type a3, arg4_type a4) {
223 return operator()(a1,a2,a3,a4);
229 return impl->send(a1,a2,a3,a4);
237 template<
class F,
class ToInvoke>
240 typedef typename boost::function_traits<F>::result_type
result_type;
241 typedef typename boost::function_traits<F>::arg1_type
arg1_type;
242 typedef typename boost::function_traits<F>::arg2_type
arg2_type;
243 typedef typename boost::function_traits<F>::arg3_type
arg3_type;
244 typedef typename boost::function_traits<F>::arg4_type
arg4_type;
245 typedef typename boost::function_traits<F>::arg5_type
arg5_type;
254 result_type
operator()(arg1_type t1, arg2_type t2, arg3_type t3, arg4_type t4, arg5_type t5)
257 return impl->call(t1, t2, t3, t4, t5);
261 result_type
call(arg1_type a1, arg2_type a2, arg3_type a3, arg4_type a4, arg5_type a5) {
262 return operator()(a1,a2,a3,a4,a5);
268 return impl->send(a1,a2,a3,a4,a5);
276 template<
class F,
class ToInvoke>
279 typedef typename boost::function_traits<F>::result_type
result_type;
280 typedef typename boost::function_traits<F>::arg1_type
arg1_type;
281 typedef typename boost::function_traits<F>::arg2_type
arg2_type;
282 typedef typename boost::function_traits<F>::arg3_type
arg3_type;
283 typedef typename boost::function_traits<F>::arg4_type
arg4_type;
284 typedef typename boost::function_traits<F>::arg5_type
arg5_type;
285 typedef typename boost::function_traits<F>::arg6_type
arg6_type;
294 result_type
operator()(arg1_type t1, arg2_type t2, arg3_type t3, arg4_type t4, arg5_type t5, arg6_type t6)
297 return impl->call(t1, t2, t3, t4, t5, t6);
301 result_type
call(arg1_type a1, arg2_type a2, arg3_type a3, arg4_type a4, arg5_type a5, arg6_type a6) {
302 return operator()(a1,a2,a3,a4,a5,a6);
305 SendHandle<F> send(arg1_type a1, arg2_type a2, arg3_type a3, arg4_type a4, arg5_type a5, arg6_type a6)
308 return impl->send(a1,a2,a3,a4,a5,a6);
316 template<
class F,
class ToInvoke>
319 typedef typename boost::function_traits<F>::result_type
result_type;
320 typedef typename boost::function_traits<F>::arg1_type
arg1_type;
321 typedef typename boost::function_traits<F>::arg2_type
arg2_type;
322 typedef typename boost::function_traits<F>::arg3_type
arg3_type;
323 typedef typename boost::function_traits<F>::arg4_type
arg4_type;
324 typedef typename boost::function_traits<F>::arg5_type
arg5_type;
325 typedef typename boost::function_traits<F>::arg6_type
arg6_type;
326 typedef typename boost::function_traits<F>::arg7_type
arg7_type;
335 result_type
operator()(arg1_type t1, arg2_type t2, arg3_type t3, arg4_type t4, arg5_type t5, arg6_type t6, arg7_type t7)
338 return impl->call(t1, t2, t3, t4, t5, t6, t7);
342 result_type
call(arg1_type a1, arg2_type a2, arg3_type a3, arg4_type a4, arg5_type a5, arg6_type a6, arg7_type a7) {
343 return operator()(a1,a2,a3,a4,a5,a6,a7);
346 SendHandle<F> send(arg1_type a1, arg2_type a2, arg3_type a3, arg4_type a4, arg5_type a5, arg6_type a6, arg7_type a7)
349 return impl->send(a1,a2,a3,a4,a5,a6,a7);
result_type operator()(arg1_type t1, arg2_type t2, arg3_type t3)
Invoke this operator if the method has three arguments.
result_type operator()(arg1_type t1, arg2_type t2, arg3_type t3, arg4_type t4, arg5_type t5, arg6_type t6)
Invoke this operator if the method has four arguments.
boost::function_traits< F >::arg5_type arg5_type
boost::function_traits< F >::arg6_type arg6_type
result_type operator()(arg1_type t1, arg2_type t2, arg3_type t3, arg4_type t4)
Invoke this operator if the method has four arguments.
boost::function_traits< F >::arg4_type arg4_type
boost::function_traits< F >::arg2_type arg2_type
InvokerSignature(ToInvoke implementation)
boost::function_traits< F >::arg2_type arg2_type
result_type operator()()
Invoke this operator if the method has no arguments.
SendHandle< F > send(arg1_type a1, arg2_type a2, arg3_type a3, arg4_type a4, arg5_type a5)
boost::function_traits< F >::arg1_type arg1_type
InvokerSignature(ToInvoke implementation)
result_type call(arg1_type a1)
result_type operator()(arg1_type a1)
Invoke this operator if the method has one argument.
InvokerSignature(ToInvoke implementation)
SendHandle< F > send(arg1_type a1, arg2_type a2, arg3_type a3, arg4_type a4)
result_type call(arg1_type a1, arg2_type a2, arg3_type a3, arg4_type a4)
boost::function_traits< F >::arg4_type arg4_type
boost::function_traits< F >::arg2_type arg2_type
SendHandle< F > send(arg1_type a1, arg2_type a2, arg3_type a3, arg4_type a4, arg5_type a5, arg6_type a6, arg7_type a7)
boost::function_traits< F >::arg5_type arg5_type
boost::function_traits< F >::arg2_type arg2_type
boost::function_traits< F >::result_type result_type
InvokerSignature(ToInvoke implementation)
boost::function_traits< F >::arg2_type arg2_type
boost::function_traits< F >::arg2_type arg2_type
boost::function_traits< F >::arg1_type arg1_type
boost::function_traits< F >::arg1_type arg1_type
boost::function_traits< F >::arg1_type arg1_type
result_type operator()(arg1_type t1, arg2_type t2, arg3_type t3, arg4_type t4, arg5_type t5, arg6_type t6, arg7_type t7)
Invoke this operator if the method has four arguments.
SendHandle< F > send(arg1_type a1)
InvokerSignature(ToInvoke implementation)
The SendHandle is used to collect the result values of an asynchronous invocation.
result_type call(arg1_type a1, arg2_type a2, arg3_type a3)
boost::function_traits< F >::arg7_type arg7_type
boost::function_traits< F >::arg6_type arg6_type
boost::function_traits< F >::result_type result_type
result_type call(arg1_type a1, arg2_type a2, arg3_type a3, arg4_type a4, arg5_type a5, arg6_type a6)
Used by various classes to define operator(), given a Signature.
result_type call(arg1_type a1, arg2_type a2, arg3_type a3, arg4_type a4, arg5_type a5, arg6_type a6, arg7_type a7)
boost::function_traits< F >::arg3_type arg3_type
result_type call(arg1_type a1, arg2_type a2)
SendHandle< F > send(arg1_type a1, arg2_type a2, arg3_type a3, arg4_type a4, arg5_type a5, arg6_type a6)
boost::function_traits< F >::arg1_type arg1_type
boost::function_traits< F >::result_type result_type
boost::function_traits< F >::result_type result_type
boost::function_traits< F >::arg3_type arg3_type
boost::function_traits< F >::arg3_type arg3_type
InvokerSignature(ToInvoke implementation)
boost::function_traits< F >::arg3_type arg3_type
boost::function_traits< F >::arg4_type arg4_type
SendHandle< F > send(arg1_type a1, arg2_type a2, arg3_type a3)
result_type call(arg1_type a1, arg2_type a2, arg3_type a3, arg4_type a4, arg5_type a5)
boost::function_traits< F >::result_type result_type
boost::function_traits< F >::result_type result_type
boost::function_traits< F >::arg3_type arg3_type
boost::function_traits< F >::result_type result_type
Contains TaskContext, Activity, OperationCaller, Operation, Property, InputPort, OutputPort, Attribute.
result_type operator()(arg1_type t1, arg2_type t2, arg3_type t3, arg4_type t4, arg5_type t5)
Invoke this operator if the method has four arguments.
InvokerSignature(ToInvoke implementation)
boost::function_traits< F >::result_type result_type
boost::function_traits< F >::arg1_type arg1_type
boost::function_traits< F >::arg1_type arg1_type
boost::function_traits< F >::arg4_type arg4_type
boost::function_traits< F >::arg5_type arg5_type
SendHandle< F > send(arg1_type a1, arg2_type a2)
InvokerSignature(ToInvoke implementation)
result_type operator()(arg1_type t1, arg2_type t2)
Invoke this operator if the method has two arguments.