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

#include <Callable.tmpl.hpp>

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

Public Member Functions

 Callable (void)
 
pothos_explicit operator bool (void) const
 
Object opaqueCall (const Object *inputArgs, const size_t numArgs) const
 
size_t getNumArgs (void) const
 
const std::type_info & type (const int argNo) const
 
template<typename ValueType >
Callablebind (ValueType &&val, const size_t argNo)
 
Callablebind (Object &&val, const size_t argNo)
 
Callableunbind (const size_t argNo)
 
std::string toString (void) const
 
template<typename ReturnType , typename ClassType , $>
 Callable (ReturnType(ClassType::*fcn)($expand('A%d', $NARGS)))
 Create a Callable for a class method with $NARGS args. More...
 
template<typename ReturnType , typename ClassType , $>
 Callable (ReturnType(ClassType::*fcn)($expand('A%d', $NARGS)) const)
 Create a Callable for a const class method with $NARGS args. More...
 
template<typename ReturnType , $>
 Callable (ReturnType(*fcn)($expand('A%d', $NARGS)))
 Create a Callable for a function with $NARGS args. More...
 
 Callable (void)
 
pothos_explicit operator bool (void) const
 
Object opaqueCall (const Object *inputArgs, const size_t numArgs) const
 
size_t getNumArgs (void) const
 
const std::type_info & type (const int argNo) const
 
template<typename ValueType >
Callablebind (ValueType &&val, const size_t argNo)
 
Callablebind (Object &&val, const size_t argNo)
 
Callableunbind (const size_t argNo)
 
std::string toString (void) const
 
template<typename ReturnType , typename ClassType >
 Callable (ReturnType(ClassType::*fcn)())
 Create a Callable for a class method with 0 args. More...
 
template<typename ReturnType , typename ClassType >
 Callable (ReturnType(ClassType::*fcn)() const)
 Create a Callable for a const class method with 0 args. More...
 
template<typename ReturnType >
 Callable (ReturnType(*fcn)())
 Create a Callable for a function with 0 args. More...
 
template<typename ReturnType , typename ClassType , typename A0 >
 Callable (ReturnType(ClassType::*fcn)(A0))
 Create a Callable for a class method with 1 args. More...
 
template<typename ReturnType , typename ClassType , typename A0 >
 Callable (ReturnType(ClassType::*fcn)(A0) const)
 Create a Callable for a const class method with 1 args. More...
 
template<typename ReturnType , typename A0 >
 Callable (ReturnType(*fcn)(A0))
 Create a Callable for a function with 1 args. More...
 
template<typename ReturnType , typename ClassType , typename A0 , typename A1 >
 Callable (ReturnType(ClassType::*fcn)(A0, A1))
 Create a Callable for a class method with 2 args. More...
 
template<typename ReturnType , typename ClassType , typename A0 , typename A1 >
 Callable (ReturnType(ClassType::*fcn)(A0, A1) const)
 Create a Callable for a const class method with 2 args. More...
 
template<typename ReturnType , typename A0 , typename A1 >
 Callable (ReturnType(*fcn)(A0, A1))
 Create a Callable for a function with 2 args. More...
 
template<typename ReturnType , typename ClassType , typename A0 , typename A1 , typename A2 >
 Callable (ReturnType(ClassType::*fcn)(A0, A1, A2))
 Create a Callable for a class method with 3 args. More...
 
template<typename ReturnType , typename ClassType , typename A0 , typename A1 , typename A2 >
 Callable (ReturnType(ClassType::*fcn)(A0, A1, A2) const)
 Create a Callable for a const class method with 3 args. More...
 
template<typename ReturnType , typename A0 , typename A1 , typename A2 >
 Callable (ReturnType(*fcn)(A0, A1, A2))
 Create a Callable for a function with 3 args. More...
 
template<typename ReturnType , typename ClassType , typename A0 , typename A1 , typename A2 , typename A3 >
 Callable (ReturnType(ClassType::*fcn)(A0, A1, A2, A3))
 Create a Callable for a class method with 4 args. More...
 
template<typename ReturnType , typename ClassType , typename A0 , typename A1 , typename A2 , typename A3 >
 Callable (ReturnType(ClassType::*fcn)(A0, A1, A2, A3) const)
 Create a Callable for a const class method with 4 args. More...
 
template<typename ReturnType , typename A0 , typename A1 , typename A2 , typename A3 >
 Callable (ReturnType(*fcn)(A0, A1, A2, A3))
 Create a Callable for a function with 4 args. More...
 
template<typename ReturnType , typename ClassType , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 >
 Callable (ReturnType(ClassType::*fcn)(A0, A1, A2, A3, A4))
 Create a Callable for a class method with 5 args. More...
 
template<typename ReturnType , typename ClassType , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 >
 Callable (ReturnType(ClassType::*fcn)(A0, A1, A2, A3, A4) const)
 Create a Callable for a const class method with 5 args. More...
 
template<typename ReturnType , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 >
 Callable (ReturnType(*fcn)(A0, A1, A2, A3, A4))
 Create a Callable for a function with 5 args. More...
 
template<typename ReturnType , typename ClassType , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 >
 Callable (ReturnType(ClassType::*fcn)(A0, A1, A2, A3, A4, A5))
 Create a Callable for a class method with 6 args. More...
 
template<typename ReturnType , typename ClassType , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 >
 Callable (ReturnType(ClassType::*fcn)(A0, A1, A2, A3, A4, A5) const)
 Create a Callable for a const class method with 6 args. More...
 
template<typename ReturnType , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 >
 Callable (ReturnType(*fcn)(A0, A1, A2, A3, A4, A5))
 Create a Callable for a function with 6 args. More...
 
template<typename ReturnType , typename ClassType , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 >
 Callable (ReturnType(ClassType::*fcn)(A0, A1, A2, A3, A4, A5, A6))
 Create a Callable for a class method with 7 args. More...
 
template<typename ReturnType , typename ClassType , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 >
 Callable (ReturnType(ClassType::*fcn)(A0, A1, A2, A3, A4, A5, A6) const)
 Create a Callable for a const class method with 7 args. More...
 
template<typename ReturnType , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 >
 Callable (ReturnType(*fcn)(A0, A1, A2, A3, A4, A5, A6))
 Create a Callable for a function with 7 args. More...
 
template<typename ReturnType , typename ClassType , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 >
 Callable (ReturnType(ClassType::*fcn)(A0, A1, A2, A3, A4, A5, A6, A7))
 Create a Callable for a class method with 8 args. More...
 
template<typename ReturnType , typename ClassType , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 >
 Callable (ReturnType(ClassType::*fcn)(A0, A1, A2, A3, A4, A5, A6, A7) const)
 Create a Callable for a const class method with 8 args. More...
 
template<typename ReturnType , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 >
 Callable (ReturnType(*fcn)(A0, A1, A2, A3, A4, A5, A6, A7))
 Create a Callable for a function with 8 args. More...
 
template<typename ReturnType , typename ClassType , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 >
 Callable (ReturnType(ClassType::*fcn)(A0, A1, A2, A3, A4, A5, A6, A7, A8))
 Create a Callable for a class method with 9 args. More...
 
template<typename ReturnType , typename ClassType , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 >
 Callable (ReturnType(ClassType::*fcn)(A0, A1, A2, A3, A4, A5, A6, A7, A8) const)
 Create a Callable for a const class method with 9 args. More...
 
template<typename ReturnType , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 >
 Callable (ReturnType(*fcn)(A0, A1, A2, A3, A4, A5, A6, A7, A8))
 Create a Callable for a function with 9 args. More...
 
- Public Member Functions inherited from Pothos::CallInterface
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...
 

Static Public Member Functions

template< $, typename ReturnType , typename ClassType >
static Callable make (ReturnType(ClassType::*fcn)($expand('A%d', $NARGS)))
 
template< $, typename ReturnType , typename ClassType >
static Callable make (ReturnType(ClassType::*fcn)($expand('A%d', $NARGS)) const)
 
template< $, typename ReturnType >
static Callable make (ReturnType(*fcn)($expand('A%d', $NARGS)))
 
template<typename ClassType , $>
static Callable factory (void)
 
template<typename ClassType , $>
static Callable factoryNew (void)
 
template<typename ClassType , $>
static Callable factoryShared (void)
 
template<typename ReturnType , typename ClassType >
static Callable make (ReturnType(ClassType::*fcn)())
 
template<typename ReturnType , typename ClassType >
static Callable make (ReturnType(ClassType::*fcn)() const)
 
template<typename ReturnType >
static Callable make (ReturnType(*fcn)())
 
template<typename ClassType >
static Callable factory (void)
 
template<typename ClassType >
static Callable factoryNew (void)
 
template<typename ClassType >
static Callable factoryShared (void)
 
template<typename A0 , typename ReturnType , typename ClassType >
static Callable make (ReturnType(ClassType::*fcn)(A0))
 
template<typename A0 , typename ReturnType , typename ClassType >
static Callable make (ReturnType(ClassType::*fcn)(A0) const)
 
template<typename A0 , typename ReturnType >
static Callable make (ReturnType(*fcn)(A0))
 
template<typename ClassType , typename A0 >
static Callable factory (void)
 
template<typename ClassType , typename A0 >
static Callable factoryNew (void)
 
template<typename ClassType , typename A0 >
static Callable factoryShared (void)
 
template<typename A0 , typename A1 , typename ReturnType , typename ClassType >
static Callable make (ReturnType(ClassType::*fcn)(A0, A1))
 
template<typename A0 , typename A1 , typename ReturnType , typename ClassType >
static Callable make (ReturnType(ClassType::*fcn)(A0, A1) const)
 
template<typename A0 , typename A1 , typename ReturnType >
static Callable make (ReturnType(*fcn)(A0, A1))
 
template<typename ClassType , typename A0 , typename A1 >
static Callable factory (void)
 
template<typename ClassType , typename A0 , typename A1 >
static Callable factoryNew (void)
 
template<typename ClassType , typename A0 , typename A1 >
static Callable factoryShared (void)
 
template<typename A0 , typename A1 , typename A2 , typename ReturnType , typename ClassType >
static Callable make (ReturnType(ClassType::*fcn)(A0, A1, A2))
 
template<typename A0 , typename A1 , typename A2 , typename ReturnType , typename ClassType >
static Callable make (ReturnType(ClassType::*fcn)(A0, A1, A2) const)
 
template<typename A0 , typename A1 , typename A2 , typename ReturnType >
static Callable make (ReturnType(*fcn)(A0, A1, A2))
 
template<typename ClassType , typename A0 , typename A1 , typename A2 >
static Callable factory (void)
 
template<typename ClassType , typename A0 , typename A1 , typename A2 >
static Callable factoryNew (void)
 
template<typename ClassType , typename A0 , typename A1 , typename A2 >
static Callable factoryShared (void)
 
template<typename A0 , typename A1 , typename A2 , typename A3 , typename ReturnType , typename ClassType >
static Callable make (ReturnType(ClassType::*fcn)(A0, A1, A2, A3))
 
template<typename A0 , typename A1 , typename A2 , typename A3 , typename ReturnType , typename ClassType >
static Callable make (ReturnType(ClassType::*fcn)(A0, A1, A2, A3) const)
 
template<typename A0 , typename A1 , typename A2 , typename A3 , typename ReturnType >
static Callable make (ReturnType(*fcn)(A0, A1, A2, A3))
 
template<typename ClassType , typename A0 , typename A1 , typename A2 , typename A3 >
static Callable factory (void)
 
template<typename ClassType , typename A0 , typename A1 , typename A2 , typename A3 >
static Callable factoryNew (void)
 
template<typename ClassType , typename A0 , typename A1 , typename A2 , typename A3 >
static Callable factoryShared (void)
 
template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename ReturnType , typename ClassType >
static Callable make (ReturnType(ClassType::*fcn)(A0, A1, A2, A3, A4))
 
template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename ReturnType , typename ClassType >
static Callable make (ReturnType(ClassType::*fcn)(A0, A1, A2, A3, A4) const)
 
template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename ReturnType >
static Callable make (ReturnType(*fcn)(A0, A1, A2, A3, A4))
 
template<typename ClassType , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 >
static Callable factory (void)
 
template<typename ClassType , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 >
static Callable factoryNew (void)
 
template<typename ClassType , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 >
static Callable factoryShared (void)
 
template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename ReturnType , typename ClassType >
static Callable make (ReturnType(ClassType::*fcn)(A0, A1, A2, A3, A4, A5))
 
template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename ReturnType , typename ClassType >
static Callable make (ReturnType(ClassType::*fcn)(A0, A1, A2, A3, A4, A5) const)
 
template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename ReturnType >
static Callable make (ReturnType(*fcn)(A0, A1, A2, A3, A4, A5))
 
template<typename ClassType , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 >
static Callable factory (void)
 
template<typename ClassType , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 >
static Callable factoryNew (void)
 
template<typename ClassType , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 >
static Callable factoryShared (void)
 
template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename ReturnType , typename ClassType >
static Callable make (ReturnType(ClassType::*fcn)(A0, A1, A2, A3, A4, A5, A6))
 
template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename ReturnType , typename ClassType >
static Callable make (ReturnType(ClassType::*fcn)(A0, A1, A2, A3, A4, A5, A6) const)
 
template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename ReturnType >
static Callable make (ReturnType(*fcn)(A0, A1, A2, A3, A4, A5, A6))
 
template<typename ClassType , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 >
static Callable factory (void)
 
template<typename ClassType , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 >
static Callable factoryNew (void)
 
template<typename ClassType , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 >
static Callable factoryShared (void)
 
template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename ReturnType , typename ClassType >
static Callable make (ReturnType(ClassType::*fcn)(A0, A1, A2, A3, A4, A5, A6, A7))
 
template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename ReturnType , typename ClassType >
static Callable make (ReturnType(ClassType::*fcn)(A0, A1, A2, A3, A4, A5, A6, A7) const)
 
template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename ReturnType >
static Callable make (ReturnType(*fcn)(A0, A1, A2, A3, A4, A5, A6, A7))
 
template<typename ClassType , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 >
static Callable factory (void)
 
template<typename ClassType , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 >
static Callable factoryNew (void)
 
template<typename ClassType , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 >
static Callable factoryShared (void)
 
template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename ReturnType , typename ClassType >
static Callable make (ReturnType(ClassType::*fcn)(A0, A1, A2, A3, A4, A5, A6, A7, A8))
 
template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename ReturnType , typename ClassType >
static Callable make (ReturnType(ClassType::*fcn)(A0, A1, A2, A3, A4, A5, A6, A7, A8) const)
 
template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename ReturnType >
static Callable make (ReturnType(*fcn)(A0, A1, A2, A3, A4, A5, A6, A7, A8))
 
template<typename ClassType , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 >
static Callable factory (void)
 
template<typename ClassType , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 >
static Callable factoryNew (void)
 
template<typename ClassType , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 >
static Callable factoryShared (void)
 

Friends

POTHOS_API friend bool operator== (const Callable &lhs, const Callable &rhs)
 
POTHOS_API friend bool operator== (const Callable &lhs, const Callable &rhs)
 

Additional Inherited Members

Detailed Description

The Callable class binds a class method or function. The method/function can be called through an opaque Object interface, or through a templated call interface with an arbitrary number of args.

Constructor & Destructor Documentation

Pothos::Callable::Callable ( void  )

Create a null Callable. Calling a null instance will throw CallableNullError.

template<typename ReturnType , typename ClassType , $>
Pothos::Callable::Callable ( ReturnType(ClassType::*)($expand('A%d', $NARGS))  fcn)

Create a Callable for a class method with $NARGS args.

template<typename ReturnType , typename ClassType , $>
Pothos::Callable::Callable ( ReturnType(ClassType::*)($expand('A%d', $NARGS)) const  fcn)

Create a Callable for a const class method with $NARGS args.

template<typename ReturnType , $>
Pothos::Callable::Callable ( ReturnType(*)($expand('A%d', $NARGS))  fcn)

Create a Callable for a function with $NARGS args.

Pothos::Callable::Callable ( void  )

Create a null Callable. Calling a null instance will throw CallableNullError.

template<typename ReturnType , typename ClassType >
Pothos::Callable::Callable ( ReturnType(ClassType::*)()  fcn)

Create a Callable for a class method with 0 args.

template<typename ReturnType , typename ClassType >
Pothos::Callable::Callable ( ReturnType(ClassType::*)() const  fcn)

Create a Callable for a const class method with 0 args.

template<typename ReturnType >
Pothos::Callable::Callable ( ReturnType(*)()  fcn)

Create a Callable for a function with 0 args.

template<typename ReturnType , typename ClassType , typename A0 >
Pothos::Callable::Callable ( ReturnType(ClassType::*)(A0)  fcn)

Create a Callable for a class method with 1 args.

template<typename ReturnType , typename ClassType , typename A0 >
Pothos::Callable::Callable ( ReturnType(ClassType::*)(A0) const  fcn)

Create a Callable for a const class method with 1 args.

template<typename ReturnType , typename A0 >
Pothos::Callable::Callable ( ReturnType(*)(A0)  fcn)

Create a Callable for a function with 1 args.

template<typename ReturnType , typename ClassType , typename A0 , typename A1 >
Pothos::Callable::Callable ( ReturnType(ClassType::*)(A0, A1)  fcn)

Create a Callable for a class method with 2 args.

template<typename ReturnType , typename ClassType , typename A0 , typename A1 >
Pothos::Callable::Callable ( ReturnType(ClassType::*)(A0, A1) const  fcn)

Create a Callable for a const class method with 2 args.

template<typename ReturnType , typename A0 , typename A1 >
Pothos::Callable::Callable ( ReturnType(*)(A0, A1)  fcn)

Create a Callable for a function with 2 args.

template<typename ReturnType , typename ClassType , typename A0 , typename A1 , typename A2 >
Pothos::Callable::Callable ( ReturnType(ClassType::*)(A0, A1, A2)  fcn)

Create a Callable for a class method with 3 args.

template<typename ReturnType , typename ClassType , typename A0 , typename A1 , typename A2 >
Pothos::Callable::Callable ( ReturnType(ClassType::*)(A0, A1, A2) const  fcn)

Create a Callable for a const class method with 3 args.

template<typename ReturnType , typename A0 , typename A1 , typename A2 >
Pothos::Callable::Callable ( ReturnType(*)(A0, A1, A2)  fcn)

Create a Callable for a function with 3 args.

template<typename ReturnType , typename ClassType , typename A0 , typename A1 , typename A2 , typename A3 >
Pothos::Callable::Callable ( ReturnType(ClassType::*)(A0, A1, A2, A3)  fcn)

Create a Callable for a class method with 4 args.

template<typename ReturnType , typename ClassType , typename A0 , typename A1 , typename A2 , typename A3 >
Pothos::Callable::Callable ( ReturnType(ClassType::*)(A0, A1, A2, A3) const  fcn)

Create a Callable for a const class method with 4 args.

template<typename ReturnType , typename A0 , typename A1 , typename A2 , typename A3 >
Pothos::Callable::Callable ( ReturnType(*)(A0, A1, A2, A3)  fcn)

Create a Callable for a function with 4 args.

template<typename ReturnType , typename ClassType , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 >
Pothos::Callable::Callable ( ReturnType(ClassType::*)(A0, A1, A2, A3, A4)  fcn)

Create a Callable for a class method with 5 args.

template<typename ReturnType , typename ClassType , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 >
Pothos::Callable::Callable ( ReturnType(ClassType::*)(A0, A1, A2, A3, A4) const  fcn)

Create a Callable for a const class method with 5 args.

template<typename ReturnType , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 >
Pothos::Callable::Callable ( ReturnType(*)(A0, A1, A2, A3, A4)  fcn)

Create a Callable for a function with 5 args.

template<typename ReturnType , typename ClassType , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 >
Pothos::Callable::Callable ( ReturnType(ClassType::*)(A0, A1, A2, A3, A4, A5)  fcn)

Create a Callable for a class method with 6 args.

template<typename ReturnType , typename ClassType , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 >
Pothos::Callable::Callable ( ReturnType(ClassType::*)(A0, A1, A2, A3, A4, A5) const  fcn)

Create a Callable for a const class method with 6 args.

template<typename ReturnType , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 >
Pothos::Callable::Callable ( ReturnType(*)(A0, A1, A2, A3, A4, A5)  fcn)

Create a Callable for a function with 6 args.

template<typename ReturnType , typename ClassType , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 >
Pothos::Callable::Callable ( ReturnType(ClassType::*)(A0, A1, A2, A3, A4, A5, A6)  fcn)

Create a Callable for a class method with 7 args.

template<typename ReturnType , typename ClassType , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 >
Pothos::Callable::Callable ( ReturnType(ClassType::*)(A0, A1, A2, A3, A4, A5, A6) const  fcn)

Create a Callable for a const class method with 7 args.

template<typename ReturnType , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 >
Pothos::Callable::Callable ( ReturnType(*)(A0, A1, A2, A3, A4, A5, A6)  fcn)

Create a Callable for a function with 7 args.

template<typename ReturnType , typename ClassType , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 >
Pothos::Callable::Callable ( ReturnType(ClassType::*)(A0, A1, A2, A3, A4, A5, A6, A7)  fcn)

Create a Callable for a class method with 8 args.

template<typename ReturnType , typename ClassType , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 >
Pothos::Callable::Callable ( ReturnType(ClassType::*)(A0, A1, A2, A3, A4, A5, A6, A7) const  fcn)

Create a Callable for a const class method with 8 args.

template<typename ReturnType , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 >
Pothos::Callable::Callable ( ReturnType(*)(A0, A1, A2, A3, A4, A5, A6, A7)  fcn)

Create a Callable for a function with 8 args.

template<typename ReturnType , typename ClassType , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 >
Pothos::Callable::Callable ( ReturnType(ClassType::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8)  fcn)

Create a Callable for a class method with 9 args.

template<typename ReturnType , typename ClassType , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 >
Pothos::Callable::Callable ( ReturnType(ClassType::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8) const  fcn)

Create a Callable for a const class method with 9 args.

template<typename ReturnType , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 >
Pothos::Callable::Callable ( ReturnType(*)(A0, A1, A2, A3, A4, A5, A6, A7, A8)  fcn)

Create a Callable for a function with 9 args.

Member Function Documentation

template<typename ValueType >
Callable & Pothos::Callable::bind ( ValueType &&  val,
const size_t  argNo 
)

Bind an argument to the given argument index - template version. The user will not specify this argument at call time, the bound argument will be used as a substitute. The bind call does not throw.

Parameters
valthe value to put into the argument list
argNothe argument index to bind to
Returns
this Callable for operator chaining
template<typename ValueType >
Callable& Pothos::Callable::bind ( ValueType &&  val,
const size_t  argNo 
)

Bind an argument to the given argument index - template version. The user will not specify this argument at call time, the bound argument will be used as a substitute. The bind call does not throw.

Parameters
valthe value to put into the argument list
argNothe argument index to bind to
Returns
this Callable for operator chaining
Callable& Pothos::Callable::bind ( Object &&  val,
const size_t  argNo 
)

Bind an argument to the given argument index - Object version. The user will not specify this argument at call time, the bound argument will be used as a substitute. The bind call does not throw.

Parameters
valthe value to put into the argument list
argNothe argument index to bind to
Returns
this Callable for operator chaining
Callable& Pothos::Callable::bind ( Object &&  val,
const size_t  argNo 
)

Bind an argument to the given argument index - Object version. The user will not specify this argument at call time, the bound argument will be used as a substitute. The bind call does not throw.

Parameters
valthe value to put into the argument list
argNothe argument index to bind to
Returns
this Callable for operator chaining
template<typename ClassType >
Callable Pothos::Callable::factory ( void  )
static

Create a Callable for a constructor with 0 args. Template arguments must be explicitly specified.

template<typename ClassType , $>
Callable Pothos::Callable::factory ( void  )
static

Create a Callable for a constructor with $NARGS args. Template arguments must be explicitly specified.

template<typename ClassType , typename A0 >
static Callable Pothos::Callable::factory ( void  )
static

Create a Callable for a constructor with 1 args. Template arguments must be explicitly specified.

template<typename ClassType , typename A0 , typename A1 >
Callable Pothos::Callable::factory ( void  )
static

Create a Callable for a constructor with 2 args. Template arguments must be explicitly specified.

template<typename ClassType , typename A0 , typename A1 , typename A2 >
Callable Pothos::Callable::factory ( void  )
static

Create a Callable for a constructor with 3 args. Template arguments must be explicitly specified.

template<typename ClassType , typename A0 , typename A1 , typename A2 , typename A3 >
Callable Pothos::Callable::factory ( void  )
static

Create a Callable for a constructor with 4 args. Template arguments must be explicitly specified.

template<typename ClassType , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 >
Callable Pothos::Callable::factory ( void  )
static

Create a Callable for a constructor with 5 args. Template arguments must be explicitly specified.

template<typename ClassType , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 >
Callable Pothos::Callable::factory ( void  )
static

Create a Callable for a constructor with 6 args. Template arguments must be explicitly specified.

template<typename ClassType , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 >
Callable Pothos::Callable::factory ( void  )
static

Create a Callable for a constructor with 7 args. Template arguments must be explicitly specified.

template<typename ClassType , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 >
Callable Pothos::Callable::factory ( void  )
static

Create a Callable for a constructor with 8 args. Template arguments must be explicitly specified.

template<typename ClassType , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 >
Callable Pothos::Callable::factory ( void  )
static

Create a Callable for a constructor with 9 args. Template arguments must be explicitly specified.

template<typename ClassType >
Callable Pothos::Callable::factoryNew ( void  )
static

Create a Callable for a constructor with 0 args. The callable return type is a pointer to ClassType*. The user is responsible for managing the memory. Template arguments must be explicitly specified.

template<typename ClassType , $>
Callable Pothos::Callable::factoryNew ( void  )
static

Create a Callable for a constructor with $NARGS args. The callable return type is a pointer to ClassType*. The user is responsible for managing the memory. Template arguments must be explicitly specified.

template<typename ClassType , typename A0 >
static Callable Pothos::Callable::factoryNew ( void  )
static

Create a Callable for a constructor with 1 args. The callable return type is a pointer to ClassType*. The user is responsible for managing the memory. Template arguments must be explicitly specified.

template<typename ClassType , typename A0 , typename A1 >
Callable Pothos::Callable::factoryNew ( void  )
static

Create a Callable for a constructor with 2 args. The callable return type is a pointer to ClassType*. The user is responsible for managing the memory. Template arguments must be explicitly specified.

template<typename ClassType , typename A0 , typename A1 , typename A2 >
Callable Pothos::Callable::factoryNew ( void  )
static

Create a Callable for a constructor with 3 args. The callable return type is a pointer to ClassType*. The user is responsible for managing the memory. Template arguments must be explicitly specified.

template<typename ClassType , typename A0 , typename A1 , typename A2 , typename A3 >
Callable Pothos::Callable::factoryNew ( void  )
static

Create a Callable for a constructor with 4 args. The callable return type is a pointer to ClassType*. The user is responsible for managing the memory. Template arguments must be explicitly specified.

template<typename ClassType , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 >
Callable Pothos::Callable::factoryNew ( void  )
static

Create a Callable for a constructor with 5 args. The callable return type is a pointer to ClassType*. The user is responsible for managing the memory. Template arguments must be explicitly specified.

template<typename ClassType , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 >
Callable Pothos::Callable::factoryNew ( void  )
static

Create a Callable for a constructor with 6 args. The callable return type is a pointer to ClassType*. The user is responsible for managing the memory. Template arguments must be explicitly specified.

template<typename ClassType , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 >
Callable Pothos::Callable::factoryNew ( void  )
static

Create a Callable for a constructor with 7 args. The callable return type is a pointer to ClassType*. The user is responsible for managing the memory. Template arguments must be explicitly specified.

template<typename ClassType , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 >
Callable Pothos::Callable::factoryNew ( void  )
static

Create a Callable for a constructor with 8 args. The callable return type is a pointer to ClassType*. The user is responsible for managing the memory. Template arguments must be explicitly specified.

template<typename ClassType , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 >
Callable Pothos::Callable::factoryNew ( void  )
static

Create a Callable for a constructor with 9 args. The callable return type is a pointer to ClassType*. The user is responsible for managing the memory. Template arguments must be explicitly specified.

template<typename ClassType >
Callable Pothos::Callable::factoryShared ( void  )
static

Create a Callable for a constructor with 0 args. The callable return type is a std::shared_ptr<ClassType>. Template arguments must be explicitly specified.

template<typename ClassType , $>
Callable Pothos::Callable::factoryShared ( void  )
static

Create a Callable for a constructor with $NARGS args. The callable return type is a std::shared_ptr<ClassType>. Template arguments must be explicitly specified.

template<typename ClassType , typename A0 >
static Callable Pothos::Callable::factoryShared ( void  )
static

Create a Callable for a constructor with 1 args. The callable return type is a std::shared_ptr<ClassType>. Template arguments must be explicitly specified.

template<typename ClassType , typename A0 , typename A1 >
Callable Pothos::Callable::factoryShared ( void  )
static

Create a Callable for a constructor with 2 args. The callable return type is a std::shared_ptr<ClassType>. Template arguments must be explicitly specified.

template<typename ClassType , typename A0 , typename A1 , typename A2 >
Callable Pothos::Callable::factoryShared ( void  )
static

Create a Callable for a constructor with 3 args. The callable return type is a std::shared_ptr<ClassType>. Template arguments must be explicitly specified.

template<typename ClassType , typename A0 , typename A1 , typename A2 , typename A3 >
Callable Pothos::Callable::factoryShared ( void  )
static

Create a Callable for a constructor with 4 args. The callable return type is a std::shared_ptr<ClassType>. Template arguments must be explicitly specified.

template<typename ClassType , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 >
Callable Pothos::Callable::factoryShared ( void  )
static

Create a Callable for a constructor with 5 args. The callable return type is a std::shared_ptr<ClassType>. Template arguments must be explicitly specified.

template<typename ClassType , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 >
Callable Pothos::Callable::factoryShared ( void  )
static

Create a Callable for a constructor with 6 args. The callable return type is a std::shared_ptr<ClassType>. Template arguments must be explicitly specified.

template<typename ClassType , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 >
Callable Pothos::Callable::factoryShared ( void  )
static

Create a Callable for a constructor with 7 args. The callable return type is a std::shared_ptr<ClassType>. Template arguments must be explicitly specified.

template<typename ClassType , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 >
Callable Pothos::Callable::factoryShared ( void  )
static

Create a Callable for a constructor with 8 args. The callable return type is a std::shared_ptr<ClassType>. Template arguments must be explicitly specified.

template<typename ClassType , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 >
Callable Pothos::Callable::factoryShared ( void  )
static

Create a Callable for a constructor with 9 args. The callable return type is a std::shared_ptr<ClassType>. Template arguments must be explicitly specified.

size_t Pothos::Callable::getNumArgs ( void  ) const

Get the number of arguments for this call. For methods, the class instance also counts

Returns
the number of arguments
size_t Pothos::Callable::getNumArgs ( void  ) const

Get the number of arguments for this call. For methods, the class instance also counts

Returns
the number of arguments
template<typename ReturnType , typename ClassType >
Callable Pothos::Callable::make ( ReturnType(ClassType::*)()  fcn)
static

Create a Callable for a class method with 0 args. Use make to specify explicit template arguments to differentiate overloads with the same name.

template< $, typename ReturnType , typename ClassType >
Callable Pothos::Callable::make ( ReturnType(ClassType::*)($expand('A%d', $NARGS))  fcn)
static

Create a Callable for a class method with $NARGS args. Use make to specify explicit template arguments to differentiate overloads with the same name.

template<typename ReturnType , typename ClassType >
static Callable Pothos::Callable::make ( ReturnType(ClassType::*)() const  fcn)
static

Create a Callable for a const class method with 0 args. Use make to specify explicit template arguments to differentiate overloads with the same name.

template< $, typename ReturnType , typename ClassType >
static Callable Pothos::Callable::make ( ReturnType(ClassType::*)($expand('A%d', $NARGS)) const  fcn)
static

Create a Callable for a const class method with $NARGS args. Use make to specify explicit template arguments to differentiate overloads with the same name.

template<typename ReturnType >
Callable Pothos::Callable::make ( ReturnType(*)()  fcn)
static

Create a Callable for a function with 0 args. Use make to specify explicit template arguments to differentiate overloads with the same name.

template< $, typename ReturnType >
Callable Pothos::Callable::make ( ReturnType(*)($expand('A%d', $NARGS))  fcn)
static

Create a Callable for a function with $NARGS args. Use make to specify explicit template arguments to differentiate overloads with the same name.

template<typename A0 , typename ReturnType , typename ClassType >
Callable Pothos::Callable::make ( ReturnType(ClassType::*)(A0)  fcn)
static

Create a Callable for a class method with 1 args. Use make to specify explicit template arguments to differentiate overloads with the same name.

template<typename A0 , typename ReturnType , typename ClassType >
static Callable Pothos::Callable::make ( ReturnType(ClassType::*)(A0) const  fcn)
static

Create a Callable for a const class method with 1 args. Use make to specify explicit template arguments to differentiate overloads with the same name.

template<typename A0 , typename ReturnType >
Callable Pothos::Callable::make ( ReturnType(*)(A0)  fcn)
static

Create a Callable for a function with 1 args. Use make to specify explicit template arguments to differentiate overloads with the same name.

template<typename A0 , typename A1 , typename ReturnType , typename ClassType >
Callable Pothos::Callable::make ( ReturnType(ClassType::*)(A0, A1)  fcn)
static

Create a Callable for a class method with 2 args. Use make to specify explicit template arguments to differentiate overloads with the same name.

template<typename A0 , typename A1 , typename ReturnType , typename ClassType >
static Callable Pothos::Callable::make ( ReturnType(ClassType::*)(A0, A1) const  fcn)
static

Create a Callable for a const class method with 2 args. Use make to specify explicit template arguments to differentiate overloads with the same name.

template<typename A0 , typename A1 , typename ReturnType >
Callable Pothos::Callable::make ( ReturnType(*)(A0, A1)  fcn)
static

Create a Callable for a function with 2 args. Use make to specify explicit template arguments to differentiate overloads with the same name.

template<typename A0 , typename A1 , typename A2 , typename ReturnType , typename ClassType >
Callable Pothos::Callable::make ( ReturnType(ClassType::*)(A0, A1, A2)  fcn)
static

Create a Callable for a class method with 3 args. Use make to specify explicit template arguments to differentiate overloads with the same name.

template<typename A0 , typename A1 , typename A2 , typename ReturnType , typename ClassType >
static Callable Pothos::Callable::make ( ReturnType(ClassType::*)(A0, A1, A2) const  fcn)
static

Create a Callable for a const class method with 3 args. Use make to specify explicit template arguments to differentiate overloads with the same name.

template<typename A0 , typename A1 , typename A2 , typename ReturnType >
Callable Pothos::Callable::make ( ReturnType(*)(A0, A1, A2)  fcn)
static

Create a Callable for a function with 3 args. Use make to specify explicit template arguments to differentiate overloads with the same name.

template<typename A0 , typename A1 , typename A2 , typename A3 , typename ReturnType , typename ClassType >
Callable Pothos::Callable::make ( ReturnType(ClassType::*)(A0, A1, A2, A3)  fcn)
static

Create a Callable for a class method with 4 args. Use make to specify explicit template arguments to differentiate overloads with the same name.

template<typename A0 , typename A1 , typename A2 , typename A3 , typename ReturnType , typename ClassType >
static Callable Pothos::Callable::make ( ReturnType(ClassType::*)(A0, A1, A2, A3) const  fcn)
static

Create a Callable for a const class method with 4 args. Use make to specify explicit template arguments to differentiate overloads with the same name.

template<typename A0 , typename A1 , typename A2 , typename A3 , typename ReturnType >
Callable Pothos::Callable::make ( ReturnType(*)(A0, A1, A2, A3)  fcn)
static

Create a Callable for a function with 4 args. Use make to specify explicit template arguments to differentiate overloads with the same name.

template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename ReturnType , typename ClassType >
Callable Pothos::Callable::make ( ReturnType(ClassType::*)(A0, A1, A2, A3, A4)  fcn)
static

Create a Callable for a class method with 5 args. Use make to specify explicit template arguments to differentiate overloads with the same name.

template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename ReturnType , typename ClassType >
static Callable Pothos::Callable::make ( ReturnType(ClassType::*)(A0, A1, A2, A3, A4) const  fcn)
static

Create a Callable for a const class method with 5 args. Use make to specify explicit template arguments to differentiate overloads with the same name.

template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename ReturnType >
Callable Pothos::Callable::make ( ReturnType(*)(A0, A1, A2, A3, A4)  fcn)
static

Create a Callable for a function with 5 args. Use make to specify explicit template arguments to differentiate overloads with the same name.

template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename ReturnType , typename ClassType >
Callable Pothos::Callable::make ( ReturnType(ClassType::*)(A0, A1, A2, A3, A4, A5)  fcn)
static

Create a Callable for a class method with 6 args. Use make to specify explicit template arguments to differentiate overloads with the same name.

template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename ReturnType , typename ClassType >
static Callable Pothos::Callable::make ( ReturnType(ClassType::*)(A0, A1, A2, A3, A4, A5) const  fcn)
static

Create a Callable for a const class method with 6 args. Use make to specify explicit template arguments to differentiate overloads with the same name.

template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename ReturnType >
Callable Pothos::Callable::make ( ReturnType(*)(A0, A1, A2, A3, A4, A5)  fcn)
static

Create a Callable for a function with 6 args. Use make to specify explicit template arguments to differentiate overloads with the same name.

template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename ReturnType , typename ClassType >
Callable Pothos::Callable::make ( ReturnType(ClassType::*)(A0, A1, A2, A3, A4, A5, A6)  fcn)
static

Create a Callable for a class method with 7 args. Use make to specify explicit template arguments to differentiate overloads with the same name.

template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename ReturnType , typename ClassType >
static Callable Pothos::Callable::make ( ReturnType(ClassType::*)(A0, A1, A2, A3, A4, A5, A6) const  fcn)
static

Create a Callable for a const class method with 7 args. Use make to specify explicit template arguments to differentiate overloads with the same name.

template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename ReturnType >
Callable Pothos::Callable::make ( ReturnType(*)(A0, A1, A2, A3, A4, A5, A6)  fcn)
static

Create a Callable for a function with 7 args. Use make to specify explicit template arguments to differentiate overloads with the same name.

template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename ReturnType , typename ClassType >
Callable Pothos::Callable::make ( ReturnType(ClassType::*)(A0, A1, A2, A3, A4, A5, A6, A7)  fcn)
static

Create a Callable for a class method with 8 args. Use make to specify explicit template arguments to differentiate overloads with the same name.

template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename ReturnType , typename ClassType >
static Callable Pothos::Callable::make ( ReturnType(ClassType::*)(A0, A1, A2, A3, A4, A5, A6, A7) const  fcn)
static

Create a Callable for a const class method with 8 args. Use make to specify explicit template arguments to differentiate overloads with the same name.

template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename ReturnType >
Callable Pothos::Callable::make ( ReturnType(*)(A0, A1, A2, A3, A4, A5, A6, A7)  fcn)
static

Create a Callable for a function with 8 args. Use make to specify explicit template arguments to differentiate overloads with the same name.

template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename ReturnType , typename ClassType >
Callable Pothos::Callable::make ( ReturnType(ClassType::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8)  fcn)
static

Create a Callable for a class method with 9 args. Use make to specify explicit template arguments to differentiate overloads with the same name.

template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename ReturnType , typename ClassType >
static Callable Pothos::Callable::make ( ReturnType(ClassType::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8) const  fcn)
static

Create a Callable for a const class method with 9 args. Use make to specify explicit template arguments to differentiate overloads with the same name.

template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename ReturnType >
Callable Pothos::Callable::make ( ReturnType(*)(A0, A1, A2, A3, A4, A5, A6, A7, A8)  fcn)
static

Create a Callable for a function with 9 args. Use make to specify explicit template arguments to differentiate overloads with the same name.

Object Pothos::Callable::opaqueCall ( const Object inputArgs,
const size_t  numArgs 
) const
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.

Exceptions
CallableNullErrorif the Callable is null
CallableArgumentErrorfor bad arguments in number or type
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

Implements Pothos::CallInterface.

Object Pothos::Callable::opaqueCall ( const Object inputArgs,
const size_t  numArgs 
) const
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.

Exceptions
CallableNullErrorif the Callable is null
CallableArgumentErrorfor bad arguments in number or type
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

Implements Pothos::CallInterface.

pothos_explicit Pothos::Callable::operator bool ( void  ) const

Does the Callable hold a bound function?

Returns
true if callable holds a bound function
pothos_explicit Pothos::Callable::operator bool ( void  ) const

Does the Callable hold a bound function?

Returns
true if callable holds a bound function
std::string Pothos::Callable::toString ( void  ) const

Get a string representation for this Callable. The string holds the return type, and argument types.

Returns
the string with type names
std::string Pothos::Callable::toString ( void  ) const

Get a string representation for this Callable. The string holds the return type, and argument types.

Returns
the string with type names
const std::type_info& Pothos::Callable::type ( const int  argNo) const

Get the type info for a particular argument. For the return type, use argNo = -1. For argument 0 use argNo = 0, etc. For methods, argNo = 0 is the class type.

Exceptions
CallableArgumentErrorif the argNo is invalid
Returns
the type info for the argument
const std::type_info& Pothos::Callable::type ( const int  argNo) const

Get the type info for a particular argument. For the return type, use argNo = -1. For argument 0 use argNo = 0, etc. For methods, argNo = 0 is the class type.

Exceptions
CallableArgumentErrorif the argNo is invalid
Returns
the type info for the argument
Callable& Pothos::Callable::unbind ( const size_t  argNo)

Remove a binding at the given argument index. The unbind call does not throw.

Parameters
argNothe argument index to clear
Returns
this Callable for operator chaining
Callable& Pothos::Callable::unbind ( const size_t  argNo)

Remove a binding at the given argument index. The unbind call does not throw.

Parameters
argNothe argument index to clear
Returns
this Callable for operator chaining

Friends And Related Function Documentation

POTHOS_API friend bool operator== ( const Callable lhs,
const Callable rhs 
)
friend

The equals operators checks if two Callable represent the same internal data. The actual bound functions/methods cannot be checked for equality. Two callables are only equal if they originated from the same construction.

Parameters
lhsthe left hand object of the comparison
rhsthe right hand object of the comparison
Returns
true if the objects represent the same internal data
POTHOS_API friend bool operator== ( const Callable lhs,
const Callable rhs 
)
friend

The equals operators checks if two Callable represent the same internal data. The actual bound functions/methods cannot be checked for equality. Two callables are only equal if they originated from the same construction.

Parameters
lhsthe left hand object of the comparison
rhsthe right hand object of the comparison
Returns
true if the objects represent the same internal data

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