21 #ifndef __ANTARES_COMMON_ACTION_ACTION_HXX__
22 #define __ANTARES_COMMON_ACTION_ACTION_HXX__
26 namespace Antares::Private::Dispatcher
43 using MemberType = void (C::*)();
44 callback.bind(
const_cast<C*
>(
object),
reinterpret_cast<MemberType
>(method));
52 virtual void onExecute()
69 inline void Post(
const C*
object,
void (C::*method)(
void))
71 ::Antares::Dispatcher::GUI::Post(
72 (
const Yuni::Job::IJob::Ptr&)
new
73 typename ::Antares::Private::Dispatcher::JobSimpleDispatcher(
object, method));
77 inline void Post(
const C*
object,
void (C::*method)(
void), uint delay)
79 auto j = new ::Antares::Private::Dispatcher::JobSimpleDispatcher(
object, method);
80 ::Antares::Dispatcher::GUI::Post((
const Yuni::Job::IJob::Ptr&)j, delay);
83 inline void Post(
const Yuni::Bind<
void()>& job, uint delay)
85 ::Antares::Dispatcher::GUI::Post(
86 (
const Yuni::Job::IJob::Ptr&)new ::Antares::Private::Dispatcher::JobSimpleDispatcher(job),
92 inline void Post(
const Yuni::Bind<
void()>& job)
94 ::Antares::Dispatcher::Post(
95 (
const Yuni::Job::IJob::Ptr&)new ::Antares::Private::Dispatcher::JobSimpleDispatcher(job));
99 inline void Post(
const C*
object,
void (C::*method)())
101 ::Antares::Dispatcher::Post(
102 (
const Yuni::Job::IJob::Ptr&)
new
103 typename ::Antares::Private::Dispatcher::JobSimpleDispatcher(
object, method));
106 template<
class C,
class UserDataT>
107 inline void Post(
const C*
object,
void (C::*method)(),
const UserDataT& userdata)
109 ::Antares::Dispatcher::Post(
110 (
const Yuni::Job::IJob::Ptr&)
new
111 typename ::Antares::Private::Dispatcher::JobSimpleDispatcher(
object, method, userdata));
116 namespace Antares::Dispatcher::Internal
121 void ExecuteQueueDispatcher();
Definition: action.hxx:29
Yuni::Bind< void()> callback
Delayed callback.
Definition: action.hxx:59
An ASynchroneous Job Dispatcher.
Definition: action.cpp:36
void Post(const Yuni::Job::IJob::Ptr &job)
Post a new job in the thread pool.
Definition: action.cpp:108