45 #include <type_traits>
64 virtual const char*
what()
const throw() {
return "FutureThreadError\n";}
68 virtual const char*
what()
const throw() {
return "FutureWhenError\n";}
349 namespace FutureHelper {
358 mutable std::unique_ptr<const Cgu::Callback::CallbackArg<const Val&>>
when;
363 when(std::move(when_)) {}
374 mutable std::unique_ptr<Cgu::SafeEmitterArg<const Val&>>
when;
379 when(std::move(when_)) {}
389 std::unique_ptr<Cgu::Thread::Thread> thread_u;
390 std::unique_ptr<Cgu::Callback::Callback> cb_u;
400 template <
class T,
class Ret,
class... Args>
401 void run_wrapper(T*, Ret (T::*)(Args...),
const Args&...);
403 template <
class T,
class Ret,
class... Args>
404 void run_wrapper_const(
const T*, Ret (T::*)(Args...)
const,
const Args&...);
406 template <
class Ret,
class... Args>
407 void run_wrapper_static(Ret (*)(Args...),
const Args&...);
409 template <
class Func>
410 void run_wrapper_functor(Func&);
412 void cancel_cleanup();
416 gint, GMainContext*);
419 gint, GMainContext*);
425 const std::unique_ptr<const Cgu::Callback::Callback>& func,
429 Future(): val(), done(
false), running(
false), error(
false), emitter_error(
false) {}
472 template <
class Ret,
class T>
503 template <
class Ret,
class Param1,
class Arg1,
class T>
505 Ret (T::*func)(Param1),
535 template <
class Ret,
class Param1,
class Param2,
class Arg1,
class Arg2,
class T>
537 Ret (T::*func)(Param1, Param2),
568 template <
class Ret,
class Param1,
class Param2,
class Param3,
569 class Arg1,
class Arg2,
class Arg3,
class T>
571 Ret (T::*func)(Param1, Param2, Param3),
602 template <
class Ret,
class T>
604 Ret (T::*func)()
const);
633 template <
class Ret,
class Param1,
class Arg1,
class T>
635 Ret (T::*func)(Param1)
const,
665 template <
class Ret,
class Param1,
class Param2,
class Arg1,
class Arg2,
class T>
667 Ret (T::*func)(Param1, Param2)
const,
698 template <
class Ret,
class Param1,
class Param2,
class Param3,
699 class Arg1,
class Arg2,
class Arg3,
class T>
701 Ret (T::*func)(Param1, Param2, Param3)
const,
762 template <
class Ret,
class Param1,
class Arg1>
793 template <
class Ret,
class Param1,
class Param2,
class Arg1,
class Arg2>
825 template <
class Ret,
class Param1,
class Param2,
class Param3,
826 class Arg1,
class Arg2,
class Arg3>
859 template <
class Ret,
class Param1,
class Param2,
class Param3,
class Param4,
860 class Arg1,
class Arg2,
class Arg3,
class Arg4>
898 template <
class Func>
1237 gint priority = G_PRIORITY_DEFAULT,
1238 GMainContext* context = 0);
1354 gint priority = G_PRIORITY_DEFAULT,
1355 GMainContext* context = 0);
1452 GMainContext* context = 0);
1525 GMainContext* context = 0);
1692 template <
class Obj,
class Ret,
class... Params,
class... Args>
1694 Ret (Obj::*func)(Params...),
1729 template <
class Obj,
class Ret,
class... Params,
class... Args>
1731 Ret (Obj::*func)(Params...)
const,
1766 template <
class Ret,
class... Params,
class... Args>
1832 template <
class Ret,
class Func>
1840 #ifndef DOXYGEN_PARSING
1841 template <
class Func>
1851 #include <c++-gtk-utils/future.tpp>