7 #ifndef _QI_TYPE_DETAILS_ASYNC_HXX_
8 #define _QI_TYPE_DETAILS_ASYNC_HXX_
10 #include <boost/mpl/if.hpp>
21 template<
typename R,
typename T>
23 const std::string& methodName,
33 #define genCall(n, ATYPEDECL, ATYPES, ADECL, AUSE, comma) \
34 template<typename R,typename T> qi::Future<R> async( \
36 const std::string& methodName comma \
37 QI_GEN_ARGSDECLSAMETYPE(n, qi::AutoAnyReference)) \
39 AnyObject obj = AnyReference::from(instance).toObject(); \
40 qi::Future<R> res = obj.async<R>( \
41 methodName comma AUSE); \
42 res.connect(boost::bind(&detail::hold<AnyObject>, obj)); \
48 #define genCall(n, ATYPEDECL, ATYPES, ADECL, AUSE, comma) \
49 template<typename R,typename T> qi::Future<R> async( \
50 boost::shared_ptr<T> instance, \
51 const std::string& methodName comma \
52 QI_GEN_ARGSDECLSAMETYPE(n, qi::AutoAnyReference)) \
54 AnyObject obj = AnyReference::from(instance).toObject(); \
55 qi::Future<R> res = obj.async<R>( \
56 methodName comma AUSE); \
57 res.connect(boost::bind(&detail::hold<AnyObject>, obj)); \
63 #define genCall(n, ATYPEDECL, ATYPES, ADECL, AUSE, comma) \
64 template<typename R,typename T> qi::Future<R> async( \
66 const std::string& methodName comma \
67 QI_GEN_ARGSDECLSAMETYPE(n, qi::AutoAnyReference)) \
69 AnyObject obj = instance; \
70 qi::Future<R> res = obj.async<R>( \
71 methodName comma AUSE); \
72 res.connect(boost::bind(&detail::hold<AnyObject>, obj)); \
81 #endif // _QITYPE_DETAILS_ASYNC_HXX_
Future< R > async(boost::function< R()> callback, uint64_t usDelay=0)
#define genCall(n, ATYPEDECL, ATYPES, ADECL, AUSE, comma)