13 #ifndef __PROCESS_DELAY_HPP__ 14 #define __PROCESS_DELAY_HPP__ 46 return delay(duration, process.
self(), method);
55 return delay(duration, process->
self(), method);
59 #define TEMPLATE(Z, N, DATA) \ 60 template <typename T, \ 61 ENUM_PARAMS(N, typename P), \ 62 ENUM_PARAMS(N, typename A)> \ 63 Timer delay(const Duration& duration, \ 65 void (T::*method)(ENUM_PARAMS(N, P)), \ 66 ENUM_BINARY_PARAMS(N, A, a)) \ 68 return Clock::timer(duration, [=]() { \ 69 dispatch(pid, method, ENUM_PARAMS(N, a)); \ 73 template <typename T, \ 74 ENUM_PARAMS(N, typename P), \ 75 ENUM_PARAMS(N, typename A)> \ 76 Timer delay(const Duration& duration, \ 77 const Process<T>& process, \ 78 void (T::*method)(ENUM_PARAMS(N, P)), \ 79 ENUM_BINARY_PARAMS(N, A, a)) \ 81 return delay(duration, process.self(), method, ENUM_PARAMS(N, a)); \ 84 template <typename T, \ 85 ENUM_PARAMS(N, typename P), \ 86 ENUM_PARAMS(N, typename A)> \ 87 Timer delay(const Duration& duration, \ 88 const Process<T>* process, \ 89 void (T::*method)(ENUM_PARAMS(N, P)), \ 90 ENUM_BINARY_PARAMS(N, A, a)) \ 92 return delay(duration, process->self(), method, ENUM_PARAMS(N, a)); \ 100 #endif // __PROCESS_DELAY_HPP__ REPEAT_FROM_TO(1, 13, TEMPLATE, _) class AsyncExecutorProcess
Definition: async.hpp:63
Definition: duration.hpp:32
void dispatch(const PID< T > &pid, void(T::*method)())
Definition: dispatch.hpp:174
Timer delay(const Duration &duration, const PID< T > &pid, void(T::*method)())
Definition: delay.hpp:31
A "process identifier" used to uniquely identify a process when dispatching messages.
Definition: pid.hpp:289
#define TEMPLATE(Z, N, DATA)
Definition: delay.hpp:59
Definition: executor.hpp:48
PID< T > self() const
Returns the PID of the process.
Definition: process.hpp:514
static Timer timer(const Duration &duration, const lambda::function< void()> &thunk)
Definition: process.hpp:505