libalcommon
2.0.6.8
|
#include <qitype/objecttypebuilder.hpp>
Go to the source code of this file.
Namespaces | |
namespace | AL |
NAOqi. | |
Defines | |
#define | pushi(z, n, _) args.push_back(::qi::AnyReference::from(p ## n)); |
#define | consti(z, n, _) , const P ## n & p ## n |
#define | genCall(n, ATYPEDECL, ATYPES, ADECL, AUSE, comma) |
#define | genCall(n, ATYPEDECL, ATYPES, ADECL, AUSE, comma) |
#define consti | ( | z, | |
n, | |||
_ | |||
) | , const P ## n & p ## n |
Definition at line 17 of file alproxy.hxx.
#define genCall | ( | n, | |
ATYPEDECL, | |||
ATYPES, | |||
ADECL, | |||
AUSE, | |||
comma | |||
) |
template<typename R comma ATYPEDECL> \ R ALProxy::call(const std::string& pName BOOST_PP_REPEAT(n, consti, _) ) \ { \ qi::AnyObject object = _object.lock(); \ if (!object) \ throw ALERROR(moduleName(), pName, "module destroyed"); \ ::qi::GenericFunctionParameters args; \ args.reserve(n); \ BOOST_PP_REPEAT(n, pushi, _) \ try \ { \ qi::AnyValue res(object.metaCall(pName, args).value(), false, true); \ qi::Promise<R> prom(qi::FutureCallbackType_Sync); \ if (qi::detail::handleFuture(res.asReference(), prom)) \ { \ res.release(); /* handleFuture will free it */ \ prom.future().wait(); \ qiLogDebug("alproxy.call") << prom.future().hasError(); \ return (R)prom.future().value(); \ } \ else \ return res.to<R>(); \ /*return qi::AnyValue(object.metaCall(pName, args).value(), false, true).to<R>();*/ \ } \ catch(const std::exception& e) \ { \ throw ALERROR(moduleName(), pName, e.what()); \ } \ }
Definition at line 52 of file alproxy.hxx.
#define genCall | ( | n, | |
ATYPEDECL, | |||
ATYPES, | |||
ADECL, | |||
AUSE, | |||
comma | |||
) |
QI_GEN_MAYBE_TEMPLATE_OPEN(comma) ATYPEDECL QI_GEN_MAYBE_TEMPLATE_CLOSE(comma) \ inline void ALProxy::callVoid(const std::string& pName BOOST_PP_REPEAT(n, consti, _)) \ { \ call<void>(pName comma AUSE); \ }
Definition at line 52 of file alproxy.hxx.
#define pushi | ( | z, | |
n, | |||
_ | |||
) | args.push_back(::qi::AnyReference::from(p ## n)); |
Definition at line 16 of file alproxy.hxx.