39 #ifndef CGU_TASK_MANAGER_H
40 #define CGU_TASK_MANAGER_H
62 virtual const char*
what()
const throw() {
return "TaskError\n";}
368 typedef std::pair<std::unique_ptr<const Callback::Callback>,
369 std::unique_ptr<const Callback::Callback>> QueueItemType;
641 #ifdef CGU_USE_AUTO_PTR
642 add_task(std::auto_ptr<const Callback::Callback>(task),
643 std::auto_ptr<const Callback::Callback>());
645 add_task(std::unique_ptr<const Callback::Callback>(task),
646 std::unique_ptr<const Callback::Callback>());
716 #ifdef CGU_USE_AUTO_PTR
717 void add_task(std::auto_ptr<const Callback::Callback> task,
718 std::auto_ptr<const Callback::Callback> fail);
720 void add_task(std::unique_ptr<const Callback::Callback> task,
721 std::unique_ptr<const Callback::Callback> fail);
787 template <
class Ret,
class... Params,
class... Args,
class T>
789 Ret (T::*func)(Params...),
908 template <
class Ret,
class... Params,
class... Args,
class T>
909 #ifdef CGU_USE_AUTO_PTR
912 std::auto_ptr<const Cgu::Callback::Callback> fail,
915 GMainContext* context,
917 Ret (T::*func)(Params...),
922 std::unique_ptr<const Cgu::Callback::Callback> fail,
925 GMainContext* context,
927 Ret (T::*func)(Params...),
997 template <
class Ret,
class... Params,
class... Args,
class T>
998 #ifdef CGU_USE_AUTO_PTR
1000 GMainContext* context,
1002 Ret (T::*func)(Params...),
1004 static_assert(
sizeof...(Args) < 4,
1005 "No greater than three bound arguments can be passed to "
1006 "TaskManager::make_task_when() taking a member function.");
1010 std::auto_ptr<const Cgu::Callback::Callback>(),
1016 std::forward<Args>(args)...);
1020 GMainContext* context,
1022 Ret (T::*func)(Params...),
1024 static_assert(
sizeof...(Args) < 4,
1025 "No greater than three bound arguments can be passed to "
1026 "TaskManager::make_task_when() taking a member function.");
1030 std::unique_ptr<const Cgu::Callback::Callback>(),
1036 std::forward<Args>(args)...);
1085 template <
class Ret,
class... Params,
class... Args,
class T>
1087 Ret (T::*func)(Params...)
const,
1206 template <
class Ret,
class... Params,
class... Args,
class T>
1207 #ifdef CGU_USE_AUTO_PTR
1210 std::auto_ptr<const Cgu::Callback::Callback> fail,
1213 GMainContext* context,
1215 Ret (T::*func)(Params...)
const,
1220 std::unique_ptr<const Cgu::Callback::Callback> fail,
1223 GMainContext* context,
1225 Ret (T::*func)(Params...)
const,
1295 template <
class Ret,
class... Params,
class... Args,
class T>
1296 #ifdef CGU_USE_AUTO_PTR
1298 GMainContext* context,
1300 Ret (T::*func)(Params...)
const,
1302 static_assert(
sizeof...(Args) < 4,
1303 "No greater than three bound arguments can be passed to "
1304 "TaskManager::make_task_when() taking a member function.");
1308 std::auto_ptr<const Cgu::Callback::Callback>(),
1314 std::forward<Args>(args)...);
1318 GMainContext* context,
1320 Ret (T::*func)(Params...)
const,
1322 static_assert(
sizeof...(Args) < 4,
1323 "No greater than three bound arguments can be passed to "
1324 "TaskManager::make_task_when() taking a member function.");
1328 std::unique_ptr<const Cgu::Callback::Callback>(),
1334 std::forward<Args>(args)...);
1380 template <
class Ret,
class... Params,
class... Args>
1497 template <
class Ret,
class... Params,
class... Args>
1498 #ifdef CGU_USE_AUTO_PTR
1501 std::auto_ptr<const Cgu::Callback::Callback> fail,
1504 GMainContext* context,
1505 Ret (*func)(Params...),
1510 std::unique_ptr<const Cgu::Callback::Callback> fail,
1513 GMainContext* context,
1514 Ret (*func)(Params...),
1581 template <
class Ret,
class... Params,
class... Args>
1582 #ifdef CGU_USE_AUTO_PTR
1584 GMainContext* context,
1585 Ret (*func)(Params...),
1587 static_assert(
sizeof...(Args) < 5,
1588 "No greater than four bound arguments can be passed to "
1589 "TaskManager::make_task_when() taking a function.");
1593 std::auto_ptr<const Cgu::Callback::Callback>(),
1598 std::forward<Args>(args)...);
1601 GMainContext* context,
1602 Ret (*func)(Params...),
1604 static_assert(
sizeof...(Args) < 5,
1605 "No greater than four bound arguments can be passed to "
1606 "TaskManager::make_task_when() taking a function.");
1610 std::unique_ptr<const Cgu::Callback::Callback>(),
1615 std::forward<Args>(args)...);
1657 template <
class Ret>
1698 template <
class Ret>
1813 template <
class Ret>
1814 #ifdef CGU_USE_AUTO_PTR
1817 std::auto_ptr<const Cgu::Callback::Callback> fail,
1820 GMainContext* context,
1821 const std::function<Ret(
void)>& f);
1825 std::unique_ptr<const Cgu::Callback::Callback> fail,
1828 GMainContext* context,
1829 const std::function<Ret(
void)>& f);
1944 template <
class Ret>
1945 #ifdef CGU_USE_AUTO_PTR
1948 std::auto_ptr<const Cgu::Callback::Callback> fail,
1951 GMainContext* context,
1952 std::function<Ret(
void)>&& f);
1956 std::unique_ptr<const Cgu::Callback::Callback> fail,
1959 GMainContext* context,
1960 std::function<Ret(
void)>&& f);
2029 template <
class Ret>
2030 #ifdef CGU_USE_AUTO_PTR
2032 GMainContext* context,
2033 const std::function<Ret(
void)>& f) {
2036 std::auto_ptr<const Cgu::Callback::Callback>(),
2044 GMainContext* context,
2045 const std::function<Ret(
void)>& f) {
2048 std::unique_ptr<const Cgu::Callback::Callback>(),
2122 template <
class Ret>
2123 #ifdef CGU_USE_AUTO_PTR
2125 GMainContext* context,
2126 std::function<Ret(
void)>&& f) {
2129 std::auto_ptr<const Cgu::Callback::Callback>(),
2136 GMainContext* context,
2137 std::function<Ret(
void)>&& f) {
2140 std::unique_ptr<const Cgu::Callback::Callback>(),
2216 template <
class Ret>
2217 #ifdef CGU_USE_AUTO_PTR
2219 GMainContext* context,
2223 std::auto_ptr<const Cgu::Callback::Callback>(),
2231 GMainContext* context,
2235 std::unique_ptr<const Cgu::Callback::Callback>(),
2311 template <
class Ret>
2312 #ifdef CGU_USE_AUTO_PTR
2314 GMainContext* context,
2318 std::auto_ptr<const Cgu::Callback::Callback>(),
2326 GMainContext* context,
2330 std::unique_ptr<const Cgu::Callback::Callback>(),
2383 TaskManager(
unsigned int max = 8,
unsigned int min = 0,
2384 unsigned int idle = 10000,
bool blocking =
true,
2446 #include <c++-gtk-utils/task_manager.tpp>