Pothos  0.2.1-g9f04573d
The Pothos dataflow programming software suite
 All Classes Namespaces Files Functions Variables Typedefs Friends Macros
Public Member Functions | Protected Member Functions | List of all members
Pothos::CallInterface Class Referenceabstract

#include <CallInterface.tmpl.hpp>

Inheritance diagram for Pothos::CallInterface:
Inheritance graph
[legend]

Public Member Functions

virtual ~CallInterface (void)
 
template<typename ReturnType , $>
ReturnType call ($expand('A%d &&a%d', $NARGS)) const
 Call a bound method/function with a return type and $NARGS args. More...
 
template< $>
Object callObject ($expand('A%d &&a%d', $NARGS)) const
 Call a bound method/function with an Object return and $NARGS args. More...
 
template< $>
void callVoid ($expand('A%d &&a%d', $NARGS)) const
 Call a bound method/function with a void return and $NARGS args. More...
 
virtual ~CallInterface (void)
 
template<typename ReturnType >
ReturnType call () const
 Call a bound method/function with a return type and 0 args. More...
 
Object callObject () const
 Call a bound method/function with an Object return and 0 args. More...
 
void callVoid () const
 Call a bound method/function with a void return and 0 args. More...
 
template<typename ReturnType , typename A0 >
ReturnType call (A0 &&a0) const
 Call a bound method/function with a return type and 1 args. More...
 
template<typename A0 >
Object callObject (A0 &&a0) const
 Call a bound method/function with an Object return and 1 args. More...
 
template<typename A0 >
void callVoid (A0 &&a0) const
 Call a bound method/function with a void return and 1 args. More...
 
template<typename ReturnType , typename A0 , typename A1 >
ReturnType call (A0 &&a0, A1 &&a1) const
 Call a bound method/function with a return type and 2 args. More...
 
template<typename A0 , typename A1 >
Object callObject (A0 &&a0, A1 &&a1) const
 Call a bound method/function with an Object return and 2 args. More...
 
template<typename A0 , typename A1 >
void callVoid (A0 &&a0, A1 &&a1) const
 Call a bound method/function with a void return and 2 args. More...
 
template<typename ReturnType , typename A0 , typename A1 , typename A2 >
ReturnType call (A0 &&a0, A1 &&a1, A2 &&a2) const
 Call a bound method/function with a return type and 3 args. More...
 
template<typename A0 , typename A1 , typename A2 >
Object callObject (A0 &&a0, A1 &&a1, A2 &&a2) const
 Call a bound method/function with an Object return and 3 args. More...
 
template<typename A0 , typename A1 , typename A2 >
void callVoid (A0 &&a0, A1 &&a1, A2 &&a2) const
 Call a bound method/function with a void return and 3 args. More...
 
template<typename ReturnType , typename A0 , typename A1 , typename A2 , typename A3 >
ReturnType call (A0 &&a0, A1 &&a1, A2 &&a2, A3 &&a3) const
 Call a bound method/function with a return type and 4 args. More...
 
template<typename A0 , typename A1 , typename A2 , typename A3 >
Object callObject (A0 &&a0, A1 &&a1, A2 &&a2, A3 &&a3) const
 Call a bound method/function with an Object return and 4 args. More...
 
template<typename A0 , typename A1 , typename A2 , typename A3 >
void callVoid (A0 &&a0, A1 &&a1, A2 &&a2, A3 &&a3) const
 Call a bound method/function with a void return and 4 args. More...
 
template<typename ReturnType , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 >
ReturnType call (A0 &&a0, A1 &&a1, A2 &&a2, A3 &&a3, A4 &&a4) const
 Call a bound method/function with a return type and 5 args. More...
 
template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 >
Object callObject (A0 &&a0, A1 &&a1, A2 &&a2, A3 &&a3, A4 &&a4) const
 Call a bound method/function with an Object return and 5 args. More...
 
template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 >
void callVoid (A0 &&a0, A1 &&a1, A2 &&a2, A3 &&a3, A4 &&a4) const
 Call a bound method/function with a void return and 5 args. More...
 
template<typename ReturnType , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 >
ReturnType call (A0 &&a0, A1 &&a1, A2 &&a2, A3 &&a3, A4 &&a4, A5 &&a5) const
 Call a bound method/function with a return type and 6 args. More...
 
template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 >
Object callObject (A0 &&a0, A1 &&a1, A2 &&a2, A3 &&a3, A4 &&a4, A5 &&a5) const
 Call a bound method/function with an Object return and 6 args. More...
 
template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 >
void callVoid (A0 &&a0, A1 &&a1, A2 &&a2, A3 &&a3, A4 &&a4, A5 &&a5) const
 Call a bound method/function with a void return and 6 args. More...
 
template<typename ReturnType , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 >
ReturnType call (A0 &&a0, A1 &&a1, A2 &&a2, A3 &&a3, A4 &&a4, A5 &&a5, A6 &&a6) const
 Call a bound method/function with a return type and 7 args. More...
 
template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 >
Object callObject (A0 &&a0, A1 &&a1, A2 &&a2, A3 &&a3, A4 &&a4, A5 &&a5, A6 &&a6) const
 Call a bound method/function with an Object return and 7 args. More...
 
template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 >
void callVoid (A0 &&a0, A1 &&a1, A2 &&a2, A3 &&a3, A4 &&a4, A5 &&a5, A6 &&a6) const
 Call a bound method/function with a void return and 7 args. More...
 
template<typename ReturnType , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 >
ReturnType call (A0 &&a0, A1 &&a1, A2 &&a2, A3 &&a3, A4 &&a4, A5 &&a5, A6 &&a6, A7 &&a7) const
 Call a bound method/function with a return type and 8 args. More...
 
template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 >
Object callObject (A0 &&a0, A1 &&a1, A2 &&a2, A3 &&a3, A4 &&a4, A5 &&a5, A6 &&a6, A7 &&a7) const
 Call a bound method/function with an Object return and 8 args. More...
 
template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 >
void callVoid (A0 &&a0, A1 &&a1, A2 &&a2, A3 &&a3, A4 &&a4, A5 &&a5, A6 &&a6, A7 &&a7) const
 Call a bound method/function with a void return and 8 args. More...
 
template<typename ReturnType , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 >
ReturnType call (A0 &&a0, A1 &&a1, A2 &&a2, A3 &&a3, A4 &&a4, A5 &&a5, A6 &&a6, A7 &&a7, A8 &&a8) const
 Call a bound method/function with a return type and 9 args. More...
 
template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 >
Object callObject (A0 &&a0, A1 &&a1, A2 &&a2, A3 &&a3, A4 &&a4, A5 &&a5, A6 &&a6, A7 &&a7, A8 &&a8) const
 Call a bound method/function with an Object return and 9 args. More...
 
template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 >
void callVoid (A0 &&a0, A1 &&a1, A2 &&a2, A3 &&a3, A4 &&a4, A5 &&a5, A6 &&a6, A7 &&a7, A8 &&a8) const
 Call a bound method/function with a void return and 9 args. More...
 

Protected Member Functions

virtual Object opaqueCall (const Object *inputArgs, const size_t numArgs) const =0
 
virtual Object opaqueCall (const Object *inputArgs, const size_t numArgs) const =0
 

Detailed Description

CallInterface provides a set of templated call functions. Derived classes overload opaqueCall() to handle the call.

Constructor & Destructor Documentation

virtual Pothos::CallInterface::~CallInterface ( void  )
virtual

virtual destructor for inheritance

virtual Pothos::CallInterface::~CallInterface ( void  )
virtual

virtual destructor for inheritance

Member Function Documentation

template<typename ReturnType >
ReturnType Pothos::CallInterface::call ( ) const

Call a bound method/function with a return type and 0 args.

template<typename ReturnType , $>
ReturnType Pothos::CallInterface::call (   $'A%d &&a%d', $NARGS) const

Call a bound method/function with a return type and $NARGS args.

template<typename ReturnType , typename A0 >
ReturnType Pothos::CallInterface::call ( A0 &&  a0) const

Call a bound method/function with a return type and 1 args.

template<typename ReturnType , typename A0 , typename A1 >
ReturnType Pothos::CallInterface::call ( A0 &&  a0,
A1 &&  a1 
) const

Call a bound method/function with a return type and 2 args.

template<typename ReturnType , typename A0 , typename A1 , typename A2 >
ReturnType Pothos::CallInterface::call ( A0 &&  a0,
A1 &&  a1,
A2 &&  a2 
) const

Call a bound method/function with a return type and 3 args.

template<typename ReturnType , typename A0 , typename A1 , typename A2 , typename A3 >
ReturnType Pothos::CallInterface::call ( A0 &&  a0,
A1 &&  a1,
A2 &&  a2,
A3 &&  a3 
) const

Call a bound method/function with a return type and 4 args.

template<typename ReturnType , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 >
ReturnType Pothos::CallInterface::call ( A0 &&  a0,
A1 &&  a1,
A2 &&  a2,
A3 &&  a3,
A4 &&  a4 
) const

Call a bound method/function with a return type and 5 args.

template<typename ReturnType , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 >
ReturnType Pothos::CallInterface::call ( A0 &&  a0,
A1 &&  a1,
A2 &&  a2,
A3 &&  a3,
A4 &&  a4,
A5 &&  a5 
) const

Call a bound method/function with a return type and 6 args.

template<typename ReturnType , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 >
ReturnType Pothos::CallInterface::call ( A0 &&  a0,
A1 &&  a1,
A2 &&  a2,
A3 &&  a3,
A4 &&  a4,
A5 &&  a5,
A6 &&  a6 
) const

Call a bound method/function with a return type and 7 args.

template<typename ReturnType , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 >
ReturnType Pothos::CallInterface::call ( A0 &&  a0,
A1 &&  a1,
A2 &&  a2,
A3 &&  a3,
A4 &&  a4,
A5 &&  a5,
A6 &&  a6,
A7 &&  a7 
) const

Call a bound method/function with a return type and 8 args.

template<typename ReturnType , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 >
ReturnType Pothos::CallInterface::call ( A0 &&  a0,
A1 &&  a1,
A2 &&  a2,
A3 &&  a3,
A4 &&  a4,
A5 &&  a5,
A6 &&  a6,
A7 &&  a7,
A8 &&  a8 
) const

Call a bound method/function with a return type and 9 args.

Pothos::Object Pothos::CallInterface::callObject ( void  ) const
inline

Call a bound method/function with an Object return and 0 args.

template< $>
Object Pothos::CallInterface::callObject (   $'A%d &&a%d', $NARGS) const

Call a bound method/function with an Object return and $NARGS args.

template<typename A0 >
Object Pothos::CallInterface::callObject ( A0 &&  a0) const

Call a bound method/function with an Object return and 1 args.

template<typename A0 , typename A1 >
Object Pothos::CallInterface::callObject ( A0 &&  a0,
A1 &&  a1 
) const

Call a bound method/function with an Object return and 2 args.

template<typename A0 , typename A1 , typename A2 >
Object Pothos::CallInterface::callObject ( A0 &&  a0,
A1 &&  a1,
A2 &&  a2 
) const

Call a bound method/function with an Object return and 3 args.

template<typename A0 , typename A1 , typename A2 , typename A3 >
Object Pothos::CallInterface::callObject ( A0 &&  a0,
A1 &&  a1,
A2 &&  a2,
A3 &&  a3 
) const

Call a bound method/function with an Object return and 4 args.

template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 >
Object Pothos::CallInterface::callObject ( A0 &&  a0,
A1 &&  a1,
A2 &&  a2,
A3 &&  a3,
A4 &&  a4 
) const

Call a bound method/function with an Object return and 5 args.

template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 >
Object Pothos::CallInterface::callObject ( A0 &&  a0,
A1 &&  a1,
A2 &&  a2,
A3 &&  a3,
A4 &&  a4,
A5 &&  a5 
) const

Call a bound method/function with an Object return and 6 args.

template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 >
Object Pothos::CallInterface::callObject ( A0 &&  a0,
A1 &&  a1,
A2 &&  a2,
A3 &&  a3,
A4 &&  a4,
A5 &&  a5,
A6 &&  a6 
) const

Call a bound method/function with an Object return and 7 args.

template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 >
Object Pothos::CallInterface::callObject ( A0 &&  a0,
A1 &&  a1,
A2 &&  a2,
A3 &&  a3,
A4 &&  a4,
A5 &&  a5,
A6 &&  a6,
A7 &&  a7 
) const

Call a bound method/function with an Object return and 8 args.

template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 >
Object Pothos::CallInterface::callObject ( A0 &&  a0,
A1 &&  a1,
A2 &&  a2,
A3 &&  a3,
A4 &&  a4,
A5 &&  a5,
A6 &&  a6,
A7 &&  a7,
A8 &&  a8 
) const

Call a bound method/function with an Object return and 9 args.

void Pothos::CallInterface::callVoid ( void  ) const
inline

Call a bound method/function with a void return and 0 args.

template< $>
void Pothos::CallInterface::callVoid (   $'A%d &&a%d', $NARGS) const

Call a bound method/function with a void return and $NARGS args.

template<typename A0 >
void Pothos::CallInterface::callVoid ( A0 &&  a0) const

Call a bound method/function with a void return and 1 args.

template<typename A0 , typename A1 >
void Pothos::CallInterface::callVoid ( A0 &&  a0,
A1 &&  a1 
) const

Call a bound method/function with a void return and 2 args.

template<typename A0 , typename A1 , typename A2 >
void Pothos::CallInterface::callVoid ( A0 &&  a0,
A1 &&  a1,
A2 &&  a2 
) const

Call a bound method/function with a void return and 3 args.

template<typename A0 , typename A1 , typename A2 , typename A3 >
void Pothos::CallInterface::callVoid ( A0 &&  a0,
A1 &&  a1,
A2 &&  a2,
A3 &&  a3 
) const

Call a bound method/function with a void return and 4 args.

template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 >
void Pothos::CallInterface::callVoid ( A0 &&  a0,
A1 &&  a1,
A2 &&  a2,
A3 &&  a3,
A4 &&  a4 
) const

Call a bound method/function with a void return and 5 args.

template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 >
void Pothos::CallInterface::callVoid ( A0 &&  a0,
A1 &&  a1,
A2 &&  a2,
A3 &&  a3,
A4 &&  a4,
A5 &&  a5 
) const

Call a bound method/function with a void return and 6 args.

template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 >
void Pothos::CallInterface::callVoid ( A0 &&  a0,
A1 &&  a1,
A2 &&  a2,
A3 &&  a3,
A4 &&  a4,
A5 &&  a5,
A6 &&  a6 
) const

Call a bound method/function with a void return and 7 args.

template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 >
void Pothos::CallInterface::callVoid ( A0 &&  a0,
A1 &&  a1,
A2 &&  a2,
A3 &&  a3,
A4 &&  a4,
A5 &&  a5,
A6 &&  a6,
A7 &&  a7 
) const

Call a bound method/function with a void return and 8 args.

template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 >
void Pothos::CallInterface::callVoid ( A0 &&  a0,
A1 &&  a1,
A2 &&  a2,
A3 &&  a3,
A4 &&  a4,
A5 &&  a5,
A6 &&  a6,
A7 &&  a7,
A8 &&  a8 
) const

Call a bound method/function with a void return and 9 args.

virtual Object Pothos::CallInterface::opaqueCall ( const Object inputArgs,
const size_t  numArgs 
) const
protectedpure virtual

Call into the function/method with opaque input and return types. For a void return type of call, the returned Object will be null.

Parameters
inputArgsan array of call arguments of type Object
numArgsthe number of arguments in inputArgs
Returns
the return value of the call as type Object

Implemented in Pothos::Callable, and Pothos::Callable.

virtual Object Pothos::CallInterface::opaqueCall ( const Object inputArgs,
const size_t  numArgs 
) const
protectedpure virtual

Call into the function/method with opaque input and return types. For a void return type of call, the returned Object will be null.

Parameters
inputArgsan array of call arguments of type Object
numArgsthe number of arguments in inputArgs
Returns
the return value of the call as type Object

Implemented in Pothos::Callable, and Pothos::Callable.


The documentation for this class was generated from the following files: