45 #include <type_traits>
64 virtual const char*
what()
const throw() {
return "FutureThreadError\n";}
68 virtual const char*
what()
const throw() {
return "FutureWhenError\n";}
352 namespace FutureHelper {
361 mutable std::unique_ptr<const Cgu::Callback::CallbackArg<const Val&>>
when;
366 when(std::move(when_)) {}
377 mutable std::unique_ptr<Cgu::SafeEmitterArg<const Val&>>
when;
382 when(std::move(when_)) {}
392 std::unique_ptr<Cgu::Thread::Thread> thread_u;
393 std::unique_ptr<Cgu::Callback::Callback> cb_u;
403 template <
class T,
class Ret,
class... Args>
404 void run_wrapper(T*, Ret (T::*)(Args...),
const Args&...);
406 template <
class T,
class Ret,
class... Args>
407 void run_wrapper_const(
const T*, Ret (T::*)(Args...)
const,
const Args&...);
409 template <
class Ret,
class... Args>
410 void run_wrapper_static(Ret (*)(Args...),
const Args&...);
412 template <
class Func>
413 void run_wrapper_functor(Func&);
415 void cancel_cleanup();
419 gint, GMainContext*);
422 gint, GMainContext*);
428 const std::unique_ptr<const Cgu::Callback::Callback>& func,
432 Future(): val(), done(
false), running(
false), error(
false), emitter_error(
false) {}
475 template <
class Ret,
class T>
506 template <
class Ret,
class Param1,
class Arg1,
class T>
508 Ret (T::*func)(Param1),
538 template <
class Ret,
class Param1,
class Param2,
class Arg1,
class Arg2,
class T>
540 Ret (T::*func)(Param1, Param2),
571 template <
class Ret,
class Param1,
class Param2,
class Param3,
572 class Arg1,
class Arg2,
class Arg3,
class T>
574 Ret (T::*func)(Param1, Param2, Param3),
605 template <
class Ret,
class T>
607 Ret (T::*func)()
const);
636 template <
class Ret,
class Param1,
class Arg1,
class T>
638 Ret (T::*func)(Param1)
const,
668 template <
class Ret,
class Param1,
class Param2,
class Arg1,
class Arg2,
class T>
670 Ret (T::*func)(Param1, Param2)
const,
701 template <
class Ret,
class Param1,
class Param2,
class Param3,
702 class Arg1,
class Arg2,
class Arg3,
class T>
704 Ret (T::*func)(Param1, Param2, Param3)
const,
765 template <
class Ret,
class Param1,
class Arg1>
796 template <
class Ret,
class Param1,
class Param2,
class Arg1,
class Arg2>
828 template <
class Ret,
class Param1,
class Param2,
class Param3,
829 class Arg1,
class Arg2,
class Arg3>
862 template <
class Ret,
class Param1,
class Param2,
class Param3,
class Param4,
863 class Arg1,
class Arg2,
class Arg3,
class Arg4>
901 template <
class Func>
1240 gint priority = G_PRIORITY_DEFAULT,
1241 GMainContext* context = 0);
1357 gint priority = G_PRIORITY_DEFAULT,
1358 GMainContext* context = 0);
1455 GMainContext* context = 0);
1528 GMainContext* context = 0);
1695 template <
class Obj,
class Ret,
class... Params,
class... Args>
1697 Ret (Obj::*func)(Params...),
1732 template <
class Obj,
class Ret,
class... Params,
class... Args>
1734 Ret (Obj::*func)(Params...)
const,
1769 template <
class Ret,
class... Params,
class... Args>
1835 template <
class Ret,
class Func>
1843 #ifndef DOXYGEN_PARSING
1844 template <
class Func>
1854 #include <c++-gtk-utils/future.tpp>