23 template <
typename ReturnType>
33 throw CallableReturnError(
"Pothos::Callable::call()", ex);
41 template <
typename ReturnType,
typename A0>
51 throw CallableReturnError(
"Pothos::Callable::call()", ex);
55 template <
typename A0>
59 args[0] =
Object(std::forward<A0>(a0));
63 template <
typename A0>
72 template <
typename ReturnType,
typename A0,
typename A1>
82 throw CallableReturnError(
"Pothos::Callable::call()", ex);
86 template <
typename A0,
typename A1>
90 args[0] =
Object(std::forward<A0>(a0));
91 args[1] =
Object(std::forward<A1>(a1));
95 template <
typename A0,
typename A1>
98 this->
callObject(std::forward<A0>(a0), std::forward<A1>(a1));
104 template <
typename ReturnType,
typename A0,
typename A1,
typename A2>
107 Object r = this->
callObject(std::forward<A0>(a0), std::forward<A1>(a1), std::forward<A2>(a2));
110 return r.
convert<ReturnType>();
114 throw CallableReturnError(
"Pothos::Callable::call()", ex);
118 template <
typename A0,
typename A1,
typename A2>
122 args[0] =
Object(std::forward<A0>(a0));
123 args[1] =
Object(std::forward<A1>(a1));
124 args[2] =
Object(std::forward<A2>(a2));
128 template <
typename A0,
typename A1,
typename A2>
131 this->
callObject(std::forward<A0>(a0), std::forward<A1>(a1), std::forward<A2>(a2));
137 template <
typename ReturnType,
typename A0,
typename A1,
typename A2,
typename A3>
140 Object r = this->
callObject(std::forward<A0>(a0), std::forward<A1>(a1), std::forward<A2>(a2), std::forward<A3>(a3));
143 return r.
convert<ReturnType>();
147 throw CallableReturnError(
"Pothos::Callable::call()", ex);
151 template <
typename A0,
typename A1,
typename A2,
typename A3>
155 args[0] =
Object(std::forward<A0>(a0));
156 args[1] =
Object(std::forward<A1>(a1));
157 args[2] =
Object(std::forward<A2>(a2));
158 args[3] =
Object(std::forward<A3>(a3));
162 template <
typename A0,
typename A1,
typename A2,
typename A3>
165 this->
callObject(std::forward<A0>(a0), std::forward<A1>(a1), std::forward<A2>(a2), std::forward<A3>(a3));
171 template <
typename ReturnType,
typename A0,
typename A1,
typename A2,
typename A3,
typename A4>
174 Object r = this->
callObject(std::forward<A0>(a0), std::forward<A1>(a1), std::forward<A2>(a2), std::forward<A3>(a3), std::forward<A4>(a4));
177 return r.
convert<ReturnType>();
181 throw CallableReturnError(
"Pothos::Callable::call()", ex);
185 template <
typename A0,
typename A1,
typename A2,
typename A3,
typename A4>
189 args[0] =
Object(std::forward<A0>(a0));
190 args[1] =
Object(std::forward<A1>(a1));
191 args[2] =
Object(std::forward<A2>(a2));
192 args[3] =
Object(std::forward<A3>(a3));
193 args[4] =
Object(std::forward<A4>(a4));
197 template <
typename A0,
typename A1,
typename A2,
typename A3,
typename A4>
200 this->
callObject(std::forward<A0>(a0), std::forward<A1>(a1), std::forward<A2>(a2), std::forward<A3>(a3), std::forward<A4>(a4));
206 template <
typename ReturnType,
typename A0,
typename A1,
typename A2,
typename A3,
typename A4,
typename A5>
209 Object r = this->
callObject(std::forward<A0>(a0), std::forward<A1>(a1), std::forward<A2>(a2), std::forward<A3>(a3), std::forward<A4>(a4), std::forward<A5>(a5));
212 return r.
convert<ReturnType>();
216 throw CallableReturnError(
"Pothos::Callable::call()", ex);
220 template <
typename A0,
typename A1,
typename A2,
typename A3,
typename A4,
typename A5>
224 args[0] =
Object(std::forward<A0>(a0));
225 args[1] =
Object(std::forward<A1>(a1));
226 args[2] =
Object(std::forward<A2>(a2));
227 args[3] =
Object(std::forward<A3>(a3));
228 args[4] =
Object(std::forward<A4>(a4));
229 args[5] =
Object(std::forward<A5>(a5));
233 template <
typename A0,
typename A1,
typename A2,
typename A3,
typename A4,
typename A5>
236 this->
callObject(std::forward<A0>(a0), std::forward<A1>(a1), std::forward<A2>(a2), std::forward<A3>(a3), std::forward<A4>(a4), std::forward<A5>(a5));
242 template <
typename ReturnType,
typename A0,
typename A1,
typename A2,
typename A3,
typename A4,
typename A5,
typename A6>
245 Object r = this->
callObject(std::forward<A0>(a0), std::forward<A1>(a1), std::forward<A2>(a2), std::forward<A3>(a3), std::forward<A4>(a4), std::forward<A5>(a5), std::forward<A6>(a6));
248 return r.
convert<ReturnType>();
252 throw CallableReturnError(
"Pothos::Callable::call()", ex);
256 template <
typename A0,
typename A1,
typename A2,
typename A3,
typename A4,
typename A5,
typename A6>
260 args[0] =
Object(std::forward<A0>(a0));
261 args[1] =
Object(std::forward<A1>(a1));
262 args[2] =
Object(std::forward<A2>(a2));
263 args[3] =
Object(std::forward<A3>(a3));
264 args[4] =
Object(std::forward<A4>(a4));
265 args[5] =
Object(std::forward<A5>(a5));
266 args[6] =
Object(std::forward<A6>(a6));
270 template <
typename A0,
typename A1,
typename A2,
typename A3,
typename A4,
typename A5,
typename A6>
273 this->
callObject(std::forward<A0>(a0), std::forward<A1>(a1), std::forward<A2>(a2), std::forward<A3>(a3), std::forward<A4>(a4), std::forward<A5>(a5), std::forward<A6>(a6));
279 template <
typename ReturnType,
typename A0,
typename A1,
typename A2,
typename A3,
typename A4,
typename A5,
typename A6,
typename A7>
280 ReturnType
CallInterface::call(A0 &&a0, A1 &&a1, A2 &&a2, A3 &&a3, A4 &&a4, A5 &&a5, A6 &&a6, A7 &&a7)
const
282 Object r = this->
callObject(std::forward<A0>(a0), std::forward<A1>(a1), std::forward<A2>(a2), std::forward<A3>(a3), std::forward<A4>(a4), std::forward<A5>(a5), std::forward<A6>(a6), std::forward<A7>(a7));
285 return r.
convert<ReturnType>();
289 throw CallableReturnError(
"Pothos::Callable::call()", ex);
293 template <
typename A0,
typename A1,
typename A2,
typename A3,
typename A4,
typename A5,
typename A6,
typename A7>
297 args[0] =
Object(std::forward<A0>(a0));
298 args[1] =
Object(std::forward<A1>(a1));
299 args[2] =
Object(std::forward<A2>(a2));
300 args[3] =
Object(std::forward<A3>(a3));
301 args[4] =
Object(std::forward<A4>(a4));
302 args[5] =
Object(std::forward<A5>(a5));
303 args[6] =
Object(std::forward<A6>(a6));
304 args[7] =
Object(std::forward<A7>(a7));
308 template <
typename A0,
typename A1,
typename A2,
typename A3,
typename A4,
typename A5,
typename A6,
typename A7>
311 this->
callObject(std::forward<A0>(a0), std::forward<A1>(a1), std::forward<A2>(a2), std::forward<A3>(a3), std::forward<A4>(a4), std::forward<A5>(a5), std::forward<A6>(a6), std::forward<A7>(a7));
317 template <
typename ReturnType,
typename A0,
typename A1,
typename A2,
typename A3,
typename A4,
typename A5,
typename A6,
typename A7,
typename A8>
318 ReturnType
CallInterface::call(A0 &&a0, A1 &&a1, A2 &&a2, A3 &&a3, A4 &&a4, A5 &&a5, A6 &&a6, A7 &&a7, A8 &&a8)
const
320 Object r = this->
callObject(std::forward<A0>(a0), std::forward<A1>(a1), std::forward<A2>(a2), std::forward<A3>(a3), std::forward<A4>(a4), std::forward<A5>(a5), std::forward<A6>(a6), std::forward<A7>(a7), std::forward<A8>(a8));
323 return r.
convert<ReturnType>();
327 throw CallableReturnError(
"Pothos::Callable::call()", ex);
331 template <
typename A0,
typename A1,
typename A2,
typename A3,
typename A4,
typename A5,
typename A6,
typename A7,
typename A8>
335 args[0] =
Object(std::forward<A0>(a0));
336 args[1] =
Object(std::forward<A1>(a1));
337 args[2] =
Object(std::forward<A2>(a2));
338 args[3] =
Object(std::forward<A3>(a3));
339 args[4] =
Object(std::forward<A4>(a4));
340 args[5] =
Object(std::forward<A5>(a5));
341 args[6] =
Object(std::forward<A6>(a6));
342 args[7] =
Object(std::forward<A7>(a7));
343 args[8] =
Object(std::forward<A8>(a8));
347 template <
typename A0,
typename A1,
typename A2,
typename A3,
typename A4,
typename A5,
typename A6,
typename A7,
typename A8>
350 this->
callObject(std::forward<A0>(a0), std::forward<A1>(a1), std::forward<A2>(a2), std::forward<A3>(a3), std::forward<A4>(a4), std::forward<A5>(a5), std::forward<A6>(a6), std::forward<A7>(a7), std::forward<A8>(a8));
virtual Object opaqueCall(const Object *inputArgs, const size_t numArgs) const =0
ReturnType call() const
Call a bound method/function with a return type and 0 args.
Definition: CallInterfaceImpl.hpp:24
Object callObject() const
Call a bound method/function with an Object return and 0 args.
Definition: CallInterface.tmpl.hpp:57
void callVoid() const
Call a bound method/function with a void return and 0 args.
Definition: CallInterface.tmpl.hpp:62
Definition: Object.hpp:55
ValueType convert(void) const
Definition: ObjectImpl.hpp:227
Definition: Exception.hpp:65