22 struct CallableContainer;
 
   30 class POTHOS_API Callable : 
public CallInterface
 
   55     Object opaqueCall(
const Object *inputArgs, 
const size_t numArgs) 
const;
 
   62     size_t getNumArgs(
void) 
const;
 
   72     const std::type_info &type(
const int argNo) 
const;
 
   83     template <
typename ValueType>
 
   84     Callable &bind(ValueType &&val, 
const size_t argNo);
 
   95     Callable &bind(Object &&val, 
const size_t argNo);
 
  103     Callable &unbind(
const size_t argNo);
 
  110     std::string toString(
void) 
const;
 
  113     template <
typename ReturnType, 
typename ClassType>
 
  114     Callable(ReturnType(ClassType::*fcn)());
 
  117     template <
typename ReturnType, 
typename ClassType>
 
  118     Callable(ReturnType(ClassType::*fcn)() 
const);
 
  121     template <
typename ReturnType>
 
  122     Callable(ReturnType(*fcn)());
 
  129     template <
typename ReturnType, 
typename ClassType>
 
  130     static Callable make(ReturnType(ClassType::*fcn)());
 
  137     template <
typename ReturnType, 
typename ClassType>
 
  138     static Callable make(ReturnType(ClassType::*fcn)() 
const);
 
  145     template <
typename ReturnType>
 
  146     static Callable make(ReturnType(*fcn)());
 
  152     template <
typename ClassType>
 
  153     static Callable factory(
void);
 
  161     template <
typename ClassType>
 
  162     static Callable factoryNew(
void);
 
  169     template <
typename ClassType>
 
  170     static Callable factoryShared(
void);
 
  173     template <
typename ReturnType, 
typename ClassType, 
typename A0>
 
  174     Callable(ReturnType(ClassType::*fcn)(A0));
 
  177     template <
typename ReturnType, 
typename ClassType, 
typename A0>
 
  178     Callable(ReturnType(ClassType::*fcn)(A0) 
const);
 
  181     template <
typename ReturnType, 
typename A0>
 
  182     Callable(ReturnType(*fcn)(A0));
 
  189     template <
typename A0, 
typename ReturnType, 
typename ClassType>
 
  190     static Callable make(ReturnType(ClassType::*fcn)(A0));
 
  197     template <
typename A0, 
typename ReturnType, 
typename ClassType>
 
  198     static Callable make(ReturnType(ClassType::*fcn)(A0) 
const);
 
  205     template <
typename A0, 
typename ReturnType>
 
  206     static Callable make(ReturnType(*fcn)(A0));
 
  212     template <
typename ClassType, 
typename A0>
 
  213     static Callable factory(
void);
 
  221     template <
typename ClassType, 
typename A0>
 
  222     static Callable factoryNew(
void);
 
  229     template <
typename ClassType, 
typename A0>
 
  230     static Callable factoryShared(
void);
 
  233     template <
typename ReturnType, 
typename ClassType, 
typename A0, 
typename A1>
 
  234     Callable(ReturnType(ClassType::*fcn)(A0, A1));
 
  237     template <
typename ReturnType, 
typename ClassType, 
typename A0, 
typename A1>
 
  238     Callable(ReturnType(ClassType::*fcn)(A0, A1) 
const);
 
  241     template <
typename ReturnType, 
typename A0, 
typename A1>
 
  242     Callable(ReturnType(*fcn)(A0, A1));
 
  249     template <
typename A0, 
typename A1, 
typename ReturnType, 
typename ClassType>
 
  250     static Callable make(ReturnType(ClassType::*fcn)(A0, A1));
 
  257     template <
typename A0, 
typename A1, 
typename ReturnType, 
typename ClassType>
 
  258     static Callable make(ReturnType(ClassType::*fcn)(A0, A1) 
const);
 
  265     template <
typename A0, 
typename A1, 
typename ReturnType>
 
  266     static Callable make(ReturnType(*fcn)(A0, A1));
 
  272     template <
typename ClassType, 
typename A0, 
typename A1>
 
  273     static Callable factory(
void);
 
  281     template <
typename ClassType, 
typename A0, 
typename A1>
 
  282     static Callable factoryNew(
void);
 
  289     template <
typename ClassType, 
typename A0, 
typename A1>
 
  290     static Callable factoryShared(
void);
 
  293     template <
typename ReturnType, 
typename ClassType, 
typename A0, 
typename A1, 
typename A2>
 
  294     Callable(ReturnType(ClassType::*fcn)(A0, A1, A2));
 
  297     template <
typename ReturnType, 
typename ClassType, 
typename A0, 
typename A1, 
typename A2>
 
  298     Callable(ReturnType(ClassType::*fcn)(A0, A1, A2) 
const);
 
  301     template <
typename ReturnType, 
typename A0, 
typename A1, 
typename A2>
 
  302     Callable(ReturnType(*fcn)(A0, A1, A2));
 
  309     template <
typename A0, 
typename A1, 
typename A2, 
typename ReturnType, 
typename ClassType>
 
  310     static Callable make(ReturnType(ClassType::*fcn)(A0, A1, A2));
 
  317     template <
typename A0, 
typename A1, 
typename A2, 
typename ReturnType, 
typename ClassType>
 
  318     static Callable make(ReturnType(ClassType::*fcn)(A0, A1, A2) 
const);
 
  325     template <
typename A0, 
typename A1, 
typename A2, 
typename ReturnType>
 
  326     static Callable make(ReturnType(*fcn)(A0, A1, A2));
 
  332     template <
typename ClassType, 
typename A0, 
typename A1, 
typename A2>
 
  333     static Callable factory(
void);
 
  341     template <
typename ClassType, 
typename A0, 
typename A1, 
typename A2>
 
  342     static Callable factoryNew(
void);
 
  349     template <
typename ClassType, 
typename A0, 
typename A1, 
typename A2>
 
  350     static Callable factoryShared(
void);
 
  353     template <
typename ReturnType, 
typename ClassType, 
typename A0, 
typename A1, 
typename A2, 
typename A3>
 
  354     Callable(ReturnType(ClassType::*fcn)(A0, A1, A2, A3));
 
  357     template <
typename ReturnType, 
typename ClassType, 
typename A0, 
typename A1, 
typename A2, 
typename A3>
 
  358     Callable(ReturnType(ClassType::*fcn)(A0, A1, A2, A3) 
const);
 
  361     template <
typename ReturnType, 
typename A0, 
typename A1, 
typename A2, 
typename A3>
 
  362     Callable(ReturnType(*fcn)(A0, A1, A2, A3));
 
  369     template <
typename A0, 
typename A1, 
typename A2, 
typename A3, 
typename ReturnType, 
typename ClassType>
 
  370     static Callable make(ReturnType(ClassType::*fcn)(A0, A1, A2, A3));
 
  377     template <
typename A0, 
typename A1, 
typename A2, 
typename A3, 
typename ReturnType, 
typename ClassType>
 
  378     static Callable make(ReturnType(ClassType::*fcn)(A0, A1, A2, A3) 
const);
 
  385     template <
typename A0, 
typename A1, 
typename A2, 
typename A3, 
typename ReturnType>
 
  386     static Callable make(ReturnType(*fcn)(A0, A1, A2, A3));
 
  392     template <
typename ClassType, 
typename A0, 
typename A1, 
typename A2, 
typename A3>
 
  393     static Callable factory(
void);
 
  401     template <
typename ClassType, 
typename A0, 
typename A1, 
typename A2, 
typename A3>
 
  402     static Callable factoryNew(
void);
 
  409     template <
typename ClassType, 
typename A0, 
typename A1, 
typename A2, 
typename A3>
 
  410     static Callable factoryShared(
void);
 
  413     template <
typename ReturnType, 
typename ClassType, 
typename A0, 
typename A1, 
typename A2, 
typename A3, 
typename A4>
 
  414     Callable(ReturnType(ClassType::*fcn)(A0, A1, A2, A3, A4));
 
  417     template <
typename ReturnType, 
typename ClassType, 
typename A0, 
typename A1, 
typename A2, 
typename A3, 
typename A4>
 
  418     Callable(ReturnType(ClassType::*fcn)(A0, A1, A2, A3, A4) 
const);
 
  421     template <
typename ReturnType, 
typename A0, 
typename A1, 
typename A2, 
typename A3, 
typename A4>
 
  422     Callable(ReturnType(*fcn)(A0, A1, A2, A3, A4));
 
  429     template <
typename A0, 
typename A1, 
typename A2, 
typename A3, 
typename A4, 
typename ReturnType, 
typename ClassType>
 
  430     static Callable make(ReturnType(ClassType::*fcn)(A0, A1, A2, A3, A4));
 
  437     template <
typename A0, 
typename A1, 
typename A2, 
typename A3, 
typename A4, 
typename ReturnType, 
typename ClassType>
 
  438     static Callable make(ReturnType(ClassType::*fcn)(A0, A1, A2, A3, A4) 
const);
 
  445     template <
typename A0, 
typename A1, 
typename A2, 
typename A3, 
typename A4, 
typename ReturnType>
 
  446     static Callable make(ReturnType(*fcn)(A0, A1, A2, A3, A4));
 
  452     template <
typename ClassType, 
typename A0, 
typename A1, 
typename A2, 
typename A3, 
typename A4>
 
  453     static Callable factory(
void);
 
  461     template <
typename ClassType, 
typename A0, 
typename A1, 
typename A2, 
typename A3, 
typename A4>
 
  462     static Callable factoryNew(
void);
 
  469     template <
typename ClassType, 
typename A0, 
typename A1, 
typename A2, 
typename A3, 
typename A4>
 
  470     static Callable factoryShared(
void);
 
  473     template <
typename ReturnType, 
typename ClassType, 
typename A0, 
typename A1, 
typename A2, 
typename A3, 
typename A4, 
typename A5>
 
  474     Callable(ReturnType(ClassType::*fcn)(A0, A1, A2, A3, A4, A5));
 
  477     template <
typename ReturnType, 
typename ClassType, 
typename A0, 
typename A1, 
typename A2, 
typename A3, 
typename A4, 
typename A5>
 
  478     Callable(ReturnType(ClassType::*fcn)(A0, A1, A2, A3, A4, A5) 
const);
 
  481     template <
typename ReturnType, 
typename A0, 
typename A1, 
typename A2, 
typename A3, 
typename A4, 
typename A5>
 
  482     Callable(ReturnType(*fcn)(A0, A1, A2, A3, A4, A5));
 
  489     template <
typename A0, 
typename A1, 
typename A2, 
typename A3, 
typename A4, 
typename A5, 
typename ReturnType, 
typename ClassType>
 
  490     static Callable make(ReturnType(ClassType::*fcn)(A0, A1, A2, A3, A4, A5));
 
  497     template <
typename A0, 
typename A1, 
typename A2, 
typename A3, 
typename A4, 
typename A5, 
typename ReturnType, 
typename ClassType>
 
  498     static Callable make(ReturnType(ClassType::*fcn)(A0, A1, A2, A3, A4, A5) 
const);
 
  505     template <
typename A0, 
typename A1, 
typename A2, 
typename A3, 
typename A4, 
typename A5, 
typename ReturnType>
 
  506     static Callable make(ReturnType(*fcn)(A0, A1, A2, A3, A4, A5));
 
  512     template <
typename ClassType, 
typename A0, 
typename A1, 
typename A2, 
typename A3, 
typename A4, 
typename A5>
 
  513     static Callable factory(
void);
 
  521     template <
typename ClassType, 
typename A0, 
typename A1, 
typename A2, 
typename A3, 
typename A4, 
typename A5>
 
  522     static Callable factoryNew(
void);
 
  529     template <
typename ClassType, 
typename A0, 
typename A1, 
typename A2, 
typename A3, 
typename A4, 
typename A5>
 
  530     static Callable factoryShared(
void);
 
  533     template <
typename ReturnType, 
typename ClassType, 
typename A0, 
typename A1, 
typename A2, 
typename A3, 
typename A4, 
typename A5, 
typename A6>
 
  534     Callable(ReturnType(ClassType::*fcn)(A0, A1, A2, A3, A4, A5, A6));
 
  537     template <
typename ReturnType, 
typename ClassType, 
typename A0, 
typename A1, 
typename A2, 
typename A3, 
typename A4, 
typename A5, 
typename A6>
 
  538     Callable(ReturnType(ClassType::*fcn)(A0, A1, A2, A3, A4, A5, A6) 
const);
 
  541     template <
typename ReturnType, 
typename A0, 
typename A1, 
typename A2, 
typename A3, 
typename A4, 
typename A5, 
typename A6>
 
  542     Callable(ReturnType(*fcn)(A0, A1, A2, A3, A4, A5, A6));
 
  549     template <
typename A0, 
typename A1, 
typename A2, 
typename A3, 
typename A4, 
typename A5, 
typename A6, 
typename ReturnType, 
typename ClassType>
 
  550     static Callable make(ReturnType(ClassType::*fcn)(A0, A1, A2, A3, A4, A5, A6));
 
  557     template <
typename A0, 
typename A1, 
typename A2, 
typename A3, 
typename A4, 
typename A5, 
typename A6, 
typename ReturnType, 
typename ClassType>
 
  558     static Callable make(ReturnType(ClassType::*fcn)(A0, A1, A2, A3, A4, A5, A6) 
const);
 
  565     template <
typename A0, 
typename A1, 
typename A2, 
typename A3, 
typename A4, 
typename A5, 
typename A6, 
typename ReturnType>
 
  566     static Callable make(ReturnType(*fcn)(A0, A1, A2, A3, A4, A5, A6));
 
  572     template <
typename ClassType, 
typename A0, 
typename A1, 
typename A2, 
typename A3, 
typename A4, 
typename A5, 
typename A6>
 
  573     static Callable factory(
void);
 
  581     template <
typename ClassType, 
typename A0, 
typename A1, 
typename A2, 
typename A3, 
typename A4, 
typename A5, 
typename A6>
 
  582     static Callable factoryNew(
void);
 
  589     template <
typename ClassType, 
typename A0, 
typename A1, 
typename A2, 
typename A3, 
typename A4, 
typename A5, 
typename A6>
 
  590     static Callable factoryShared(
void);
 
  593     template <
typename ReturnType, 
typename ClassType, 
typename A0, 
typename A1, 
typename A2, 
typename A3, 
typename A4, 
typename A5, 
typename A6, 
typename A7>
 
  594     Callable(ReturnType(ClassType::*fcn)(A0, A1, A2, A3, A4, A5, A6, A7));
 
  597     template <
typename ReturnType, 
typename ClassType, 
typename A0, 
typename A1, 
typename A2, 
typename A3, 
typename A4, 
typename A5, 
typename A6, 
typename A7>
 
  598     Callable(ReturnType(ClassType::*fcn)(A0, A1, A2, A3, A4, A5, A6, A7) 
const);
 
  601     template <
typename ReturnType, 
typename A0, 
typename A1, 
typename A2, 
typename A3, 
typename A4, 
typename A5, 
typename A6, 
typename A7>
 
  602     Callable(ReturnType(*fcn)(A0, A1, A2, A3, A4, A5, A6, A7));
 
  609     template <
typename A0, 
typename A1, 
typename A2, 
typename A3, 
typename A4, 
typename A5, 
typename A6, 
typename A7, 
typename ReturnType, 
typename ClassType>
 
  610     static Callable make(ReturnType(ClassType::*fcn)(A0, A1, A2, A3, A4, A5, A6, A7));
 
  617     template <
typename A0, 
typename A1, 
typename A2, 
typename A3, 
typename A4, 
typename A5, 
typename A6, 
typename A7, 
typename ReturnType, 
typename ClassType>
 
  618     static Callable make(ReturnType(ClassType::*fcn)(A0, A1, A2, A3, A4, A5, A6, A7) 
const);
 
  625     template <
typename A0, 
typename A1, 
typename A2, 
typename A3, 
typename A4, 
typename A5, 
typename A6, 
typename A7, 
typename ReturnType>
 
  626     static Callable make(ReturnType(*fcn)(A0, A1, A2, A3, A4, A5, A6, A7));
 
  632     template <
typename ClassType, 
typename A0, 
typename A1, 
typename A2, 
typename A3, 
typename A4, 
typename A5, 
typename A6, 
typename A7>
 
  633     static Callable factory(
void);
 
  641     template <
typename ClassType, 
typename A0, 
typename A1, 
typename A2, 
typename A3, 
typename A4, 
typename A5, 
typename A6, 
typename A7>
 
  642     static Callable factoryNew(
void);
 
  649     template <
typename ClassType, 
typename A0, 
typename A1, 
typename A2, 
typename A3, 
typename A4, 
typename A5, 
typename A6, 
typename A7>
 
  650     static Callable factoryShared(
void);
 
  653     template <
typename ReturnType, 
typename ClassType, 
typename A0, 
typename A1, 
typename A2, 
typename A3, 
typename A4, 
typename A5, 
typename A6, 
typename A7, 
typename A8>
 
  654     Callable(ReturnType(ClassType::*fcn)(A0, A1, A2, A3, A4, A5, A6, A7, A8));
 
  657     template <
typename ReturnType, 
typename ClassType, 
typename A0, 
typename A1, 
typename A2, 
typename A3, 
typename A4, 
typename A5, 
typename A6, 
typename A7, 
typename A8>
 
  658     Callable(ReturnType(ClassType::*fcn)(A0, A1, A2, A3, A4, A5, A6, A7, A8) 
const);
 
  661     template <
typename ReturnType, 
typename A0, 
typename A1, 
typename A2, 
typename A3, 
typename A4, 
typename A5, 
typename A6, 
typename A7, 
typename A8>
 
  662     Callable(ReturnType(*fcn)(A0, A1, A2, A3, A4, A5, A6, A7, A8));
 
  669     template <
typename A0, 
typename A1, 
typename A2, 
typename A3, 
typename A4, 
typename A5, 
typename A6, 
typename A7, 
typename A8, 
typename ReturnType, 
typename ClassType>
 
  670     static Callable make(ReturnType(ClassType::*fcn)(A0, A1, A2, A3, A4, A5, A6, A7, A8));
 
  677     template <
typename A0, 
typename A1, 
typename A2, 
typename A3, 
typename A4, 
typename A5, 
typename A6, 
typename A7, 
typename A8, 
typename ReturnType, 
typename ClassType>
 
  678     static Callable make(ReturnType(ClassType::*fcn)(A0, A1, A2, A3, A4, A5, A6, A7, A8) 
const);
 
  685     template <
typename A0, 
typename A1, 
typename A2, 
typename A3, 
typename A4, 
typename A5, 
typename A6, 
typename A7, 
typename A8, 
typename ReturnType>
 
  686     static Callable make(ReturnType(*fcn)(A0, A1, A2, A3, A4, A5, A6, A7, A8));
 
  692     template <
typename ClassType, 
typename A0, 
typename A1, 
typename A2, 
typename A3, 
typename A4, 
typename A5, 
typename A6, 
typename A7, 
typename A8>
 
  693     static Callable factory(
void);
 
  701     template <
typename ClassType, 
typename A0, 
typename A1, 
typename A2, 
typename A3, 
typename A4, 
typename A5, 
typename A6, 
typename A7, 
typename A8>
 
  702     static Callable factoryNew(
void);
 
  709     template <
typename ClassType, 
typename A0, 
typename A1, 
typename A2, 
typename A3, 
typename A4, 
typename A5, 
typename A6, 
typename A7, 
typename A8>
 
  710     static Callable factoryShared(
void);
 
  713     std::vector<Object> _boundArgs;
 
  714     std::shared_ptr<Detail::CallableContainer> _impl;
 
#define pothos_explicit
Definition: Config.hpp:85
 
#define POTHOS_API
Definition: Config.hpp:41
 
bool operator==(const ManagedBuffer &lhs, const ManagedBuffer &rhs)
Definition: ManagedBuffer.hpp:132