libalcommon  2.1.0.18
Namespaces | Defines
/home/opennao/work/master/sdk/libnaoqi/libalcommon/alcommon/alproxy.hxx File Reference
#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 Documentation

#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 
)
Value:
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 
)
Value:
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.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines