20 #include "events/EventQueue.h" 21 #include "platform/mbed_assert.h" 52 Event(EventQueue *q, F f)
54 _event =
static_cast<struct event *
>(
55 equeue_alloc(&q->_equeue,
sizeof(
struct event) +
sizeof(F)));
58 _event->equeue = &q->_equeue;
63 _event->post = &Event::event_post<F>;
64 _event->dtor = &Event::event_dtor<F>;
66 new (_event + 1) F(f);
85 Event &operator=(
const Event &that)
89 new (
this) Event(that);
101 if (_event->ref == 0) {
102 _event->dtor(_event);
103 equeue_dealloc(_event->equeue, _event);
112 void delay(
int delay)
115 _event->delay = delay;
123 void period(
int period)
126 _event->period = period;
148 _event->id = _event->post(_event);
164 void operator()()
const 173 static void thunk(
void *func)
175 return static_cast<Event *
>(func)->call();
192 equeue_cancel(_event->equeue, _event->id);
205 int (*post)(
struct event *);
206 void (*dtor)(
struct event *);
212 template <
typename F>
213 static int event_post(
struct event *e)
215 typedef EventQueue::context00<F> C;
216 void *p = equeue_alloc(e->equeue,
sizeof(C));
221 new (p) C(*(F *)(e + 1));
222 equeue_event_delay(p, e->delay);
223 equeue_event_period(p, e->period);
224 equeue_event_dtor(p, &EventQueue::function_dtor<C>);
225 return equeue_post(e->equeue, &EventQueue::function_call<C>, p);
228 template <
typename F>
229 static void event_dtor(
struct event *e)
231 ((F *)(e + 1))->~F();
243 template <
typename F,
typename C0>
244 Event(EventQueue *q, F f, C0 c0)
246 new (
this) Event(q, EventQueue::context10<F, C0>(f, c0));
257 template <
typename F,
typename C0,
typename C1>
258 Event(EventQueue *q, F f, C0 c0, C1 c1)
260 new (
this) Event(q, EventQueue::context20<F, C0, C1>(f, c0, c1));
271 template <
typename F,
typename C0,
typename C1,
typename C2>
272 Event(EventQueue *q, F f, C0 c0, C1 c1, C2 c2)
274 new (
this) Event(q, EventQueue::context30<F, C0, C1, C2>(f, c0, c1, c2));
285 template <
typename F,
typename C0,
typename C1,
typename C2,
typename C3>
286 Event(EventQueue *q, F f, C0 c0, C1 c1, C2 c2, C3 c3)
288 new (
this) Event(q, EventQueue::context40<F, C0, C1, C2, C3>(f, c0, c1, c2, c3));
299 template <
typename F,
typename C0,
typename C1,
typename C2,
typename C3,
typename C4>
300 Event(EventQueue *q, F f, C0 c0, C1 c1, C2 c2, C3 c3, C4 c4)
302 new (
this) Event(q, EventQueue::context50<F, C0, C1, C2, C3, C4>(f, c0, c1, c2, c3, c4));
308 template <
typename T,
typename R,
typename B0>
309 Event(EventQueue *q, T *obj, R(T::*method)(B0), B0 b0)
317 template <
typename T,
typename R,
typename B0>
318 Event(EventQueue *q,
const T *obj, R(T::*method)(B0)
const, B0 b0)
326 template <
typename T,
typename R,
typename B0>
327 Event(EventQueue *q,
volatile T *obj, R(T::*method)(B0)
volatile, B0 b0)
335 template <
typename T,
typename R,
typename B0>
336 Event(EventQueue *q,
const volatile T *obj, R(T::*method)(B0)
const volatile, B0 b0)
344 template <
typename T,
typename R,
typename B0,
typename B1>
345 Event(EventQueue *q, T *obj, R(T::*method)(B0, B1), B0 b0, B1 b1)
353 template <
typename T,
typename R,
typename B0,
typename B1>
354 Event(EventQueue *q,
const T *obj, R(T::*method)(B0, B1)
const, B0 b0, B1 b1)
362 template <
typename T,
typename R,
typename B0,
typename B1>
363 Event(EventQueue *q,
volatile T *obj, R(T::*method)(B0, B1)
volatile, B0 b0, B1 b1)
371 template <
typename T,
typename R,
typename B0,
typename B1>
372 Event(EventQueue *q,
const volatile T *obj, R(T::*method)(B0, B1)
const volatile, B0 b0, B1 b1)
380 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2>
381 Event(EventQueue *q, T *obj, R(T::*method)(B0, B1, B2), B0 b0, B1 b1, B2 b2)
389 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2>
390 Event(EventQueue *q,
const T *obj, R(T::*method)(B0, B1, B2)
const, B0 b0, B1 b1, B2 b2)
398 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2>
399 Event(EventQueue *q,
volatile T *obj, R(T::*method)(B0, B1, B2)
volatile, B0 b0, B1 b1, B2 b2)
407 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2>
408 Event(EventQueue *q,
const volatile T *obj, R(T::*method)(B0, B1, B2)
const volatile, B0 b0, B1 b1, B2 b2)
416 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3>
417 Event(EventQueue *q, T *obj, R(T::*method)(B0, B1, B2, B3), B0 b0, B1 b1, B2 b2, B3 b3)
425 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3>
426 Event(EventQueue *q,
const T *obj, R(T::*method)(B0, B1, B2, B3)
const, B0 b0, B1 b1, B2 b2, B3 b3)
434 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3>
435 Event(EventQueue *q,
volatile T *obj, R(T::*method)(B0, B1, B2, B3)
volatile, B0 b0, B1 b1, B2 b2, B3 b3)
443 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3>
444 Event(EventQueue *q,
const volatile T *obj, R(T::*method)(B0, B1, B2, B3)
const volatile, B0 b0, B1 b1, B2 b2, B3 b3)
452 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename B4>
453 Event(EventQueue *q, T *obj, R(T::*method)(B0, B1, B2, B3, B4), B0 b0, B1 b1, B2 b2, B3 b3, B4 b4)
455 new (
this) Event(q,
mbed::callback(obj, method), b0, b1, b2, b3, b4);
461 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename B4>
462 Event(EventQueue *q,
const T *obj, R(T::*method)(B0, B1, B2, B3, B4)
const, B0 b0, B1 b1, B2 b2, B3 b3, B4 b4)
464 new (
this) Event(q,
mbed::callback(obj, method), b0, b1, b2, b3, b4);
470 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename B4>
471 Event(EventQueue *q,
volatile T *obj, R(T::*method)(B0, B1, B2, B3, B4)
volatile, B0 b0, B1 b1, B2 b2, B3 b3, B4 b4)
473 new (
this) Event(q,
mbed::callback(obj, method), b0, b1, b2, b3, b4);
479 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename B4>
480 Event(EventQueue *q,
const volatile T *obj, R(T::*method)(B0, B1, B2, B3, B4)
const volatile, B0 b0, B1 b1, B2 b2, B3 b3, B4 b4)
482 new (
this) Event(q,
mbed::callback(obj, method), b0, b1, b2, b3, b4);
491 template <
typename A0>
492 class Event<void(A0)> {
503 template <
typename F>
504 Event(EventQueue *q, F f)
506 _event =
static_cast<struct event *
>(
507 equeue_alloc(&q->_equeue,
sizeof(
struct event) +
sizeof(F)));
510 _event->equeue = &q->_equeue;
515 _event->post = &Event::event_post<F>;
516 _event->dtor = &Event::event_dtor<F>;
518 new (_event + 1) F(f);
526 Event(
const Event &e)
537 Event &operator=(
const Event &that)
541 new (
this) Event(that);
553 if (_event->ref == 0) {
554 _event->dtor(_event);
555 equeue_dealloc(_event->equeue, _event);
564 void delay(
int delay)
567 _event->delay = delay;
575 void period(
int period)
578 _event->period = period;
595 int post(A0 a0)
const 601 _event->id = _event->post(_event, a0);
609 void call(A0 a0)
const 619 void operator()(A0 a0)
const 629 static void thunk(
void *func, A0 a0)
631 return static_cast<Event *
>(func)->call(a0);
648 equeue_cancel(_event->equeue, _event->id);
661 int (*post)(
struct event *, A0 a0);
662 void (*dtor)(
struct event *);
668 template <
typename F>
669 static int event_post(
struct event *e, A0 a0)
671 typedef EventQueue::context10<F, A0> C;
672 void *p = equeue_alloc(e->equeue,
sizeof(C));
677 new (p) C(*(F *)(e + 1), a0);
678 equeue_event_delay(p, e->delay);
679 equeue_event_period(p, e->period);
680 equeue_event_dtor(p, &EventQueue::function_dtor<C>);
681 return equeue_post(e->equeue, &EventQueue::function_call<C>, p);
684 template <
typename F>
685 static void event_dtor(
struct event *e)
687 ((F *)(e + 1))->~F();
699 template <
typename F,
typename C0>
700 Event(EventQueue *q, F f, C0 c0)
702 new (
this) Event(q, EventQueue::context11<F, C0, A0>(f, c0));
713 template <
typename F,
typename C0,
typename C1>
714 Event(EventQueue *q, F f, C0 c0, C1 c1)
716 new (
this) Event(q, EventQueue::context21<F, C0, C1, A0>(f, c0, c1));
727 template <
typename F,
typename C0,
typename C1,
typename C2>
728 Event(EventQueue *q, F f, C0 c0, C1 c1, C2 c2)
730 new (
this) Event(q, EventQueue::context31<F, C0, C1, C2, A0>(f, c0, c1, c2));
741 template <
typename F,
typename C0,
typename C1,
typename C2,
typename C3>
742 Event(EventQueue *q, F f, C0 c0, C1 c1, C2 c2, C3 c3)
744 new (
this) Event(q, EventQueue::context41<F, C0, C1, C2, C3, A0>(f, c0, c1, c2, c3));
755 template <
typename F,
typename C0,
typename C1,
typename C2,
typename C3,
typename C4>
756 Event(EventQueue *q, F f, C0 c0, C1 c1, C2 c2, C3 c3, C4 c4)
758 new (
this) Event(q, EventQueue::context51<F, C0, C1, C2, C3, C4, A0>(f, c0, c1, c2, c3, c4));
764 template <
typename T,
typename R,
typename B0>
765 Event(EventQueue *q, T *obj, R(T::*method)(B0, A0), B0 b0)
773 template <
typename T,
typename R,
typename B0>
774 Event(EventQueue *q,
const T *obj, R(T::*method)(B0, A0)
const, B0 b0)
782 template <
typename T,
typename R,
typename B0>
783 Event(EventQueue *q,
volatile T *obj, R(T::*method)(B0, A0)
volatile, B0 b0)
791 template <
typename T,
typename R,
typename B0>
792 Event(EventQueue *q,
const volatile T *obj, R(T::*method)(B0, A0)
const volatile, B0 b0)
800 template <
typename T,
typename R,
typename B0,
typename B1>
801 Event(EventQueue *q, T *obj, R(T::*method)(B0, B1, A0), B0 b0, B1 b1)
809 template <
typename T,
typename R,
typename B0,
typename B1>
810 Event(EventQueue *q,
const T *obj, R(T::*method)(B0, B1, A0)
const, B0 b0, B1 b1)
818 template <
typename T,
typename R,
typename B0,
typename B1>
819 Event(EventQueue *q,
volatile T *obj, R(T::*method)(B0, B1, A0)
volatile, B0 b0, B1 b1)
827 template <
typename T,
typename R,
typename B0,
typename B1>
828 Event(EventQueue *q,
const volatile T *obj, R(T::*method)(B0, B1, A0)
const volatile, B0 b0, B1 b1)
836 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2>
837 Event(EventQueue *q, T *obj, R(T::*method)(B0, B1, B2, A0), B0 b0, B1 b1, B2 b2)
845 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2>
846 Event(EventQueue *q,
const T *obj, R(T::*method)(B0, B1, B2, A0)
const, B0 b0, B1 b1, B2 b2)
854 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2>
855 Event(EventQueue *q,
volatile T *obj, R(T::*method)(B0, B1, B2, A0)
volatile, B0 b0, B1 b1, B2 b2)
863 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2>
864 Event(EventQueue *q,
const volatile T *obj, R(T::*method)(B0, B1, B2, A0)
const volatile, B0 b0, B1 b1, B2 b2)
872 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3>
873 Event(EventQueue *q, T *obj, R(T::*method)(B0, B1, B2, B3, A0), B0 b0, B1 b1, B2 b2, B3 b3)
881 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3>
882 Event(EventQueue *q,
const T *obj, R(T::*method)(B0, B1, B2, B3, A0)
const, B0 b0, B1 b1, B2 b2, B3 b3)
890 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3>
891 Event(EventQueue *q,
volatile T *obj, R(T::*method)(B0, B1, B2, B3, A0)
volatile, B0 b0, B1 b1, B2 b2, B3 b3)
899 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3>
900 Event(EventQueue *q,
const volatile T *obj, R(T::*method)(B0, B1, B2, B3, A0)
const volatile, B0 b0, B1 b1, B2 b2, B3 b3)
908 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename B4>
909 Event(EventQueue *q, T *obj, R(T::*method)(B0, B1, B2, B3, B4, A0), B0 b0, B1 b1, B2 b2, B3 b3, B4 b4)
911 new (
this) Event(q,
mbed::callback(obj, method), b0, b1, b2, b3, b4);
917 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename B4>
918 Event(EventQueue *q,
const T *obj, R(T::*method)(B0, B1, B2, B3, B4, A0)
const, B0 b0, B1 b1, B2 b2, B3 b3, B4 b4)
920 new (
this) Event(q,
mbed::callback(obj, method), b0, b1, b2, b3, b4);
926 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename B4>
927 Event(EventQueue *q,
volatile T *obj, R(T::*method)(B0, B1, B2, B3, B4, A0)
volatile, B0 b0, B1 b1, B2 b2, B3 b3, B4 b4)
929 new (
this) Event(q,
mbed::callback(obj, method), b0, b1, b2, b3, b4);
935 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename B4>
936 Event(EventQueue *q,
const volatile T *obj, R(T::*method)(B0, B1, B2, B3, B4, A0)
const volatile, B0 b0, B1 b1, B2 b2, B3 b3, B4 b4)
938 new (
this) Event(q,
mbed::callback(obj, method), b0, b1, b2, b3, b4);
947 template <
typename A0,
typename A1>
948 class Event<void(A0, A1)> {
959 template <
typename F>
960 Event(EventQueue *q, F f)
962 _event =
static_cast<struct event *
>(
963 equeue_alloc(&q->_equeue,
sizeof(
struct event) +
sizeof(F)));
966 _event->equeue = &q->_equeue;
971 _event->post = &Event::event_post<F>;
972 _event->dtor = &Event::event_dtor<F>;
974 new (_event + 1) F(f);
982 Event(
const Event &e)
993 Event &operator=(
const Event &that)
997 new (
this) Event(that);
1009 if (_event->ref == 0) {
1010 _event->dtor(_event);
1011 equeue_dealloc(_event->equeue, _event);
1020 void delay(
int delay)
1023 _event->delay = delay;
1031 void period(
int period)
1034 _event->period = period;
1051 int post(A0 a0, A1 a1)
const 1057 _event->id = _event->post(_event, a0, a1);
1065 void call(A0 a0, A1 a1)
const 1075 void operator()(A0 a0, A1 a1)
const 1077 return call(a0, a1);
1085 static void thunk(
void *func, A0 a0, A1 a1)
1087 return static_cast<Event *
>(func)->call(a0, a1);
1104 equeue_cancel(_event->equeue, _event->id);
1117 int (*post)(
struct event *, A0 a0, A1 a1);
1118 void (*dtor)(
struct event *);
1124 template <
typename F>
1125 static int event_post(
struct event *e, A0 a0, A1 a1)
1127 typedef EventQueue::context20<F, A0, A1> C;
1128 void *p = equeue_alloc(e->equeue,
sizeof(C));
1133 new (p) C(*(F *)(e + 1), a0, a1);
1134 equeue_event_delay(p, e->delay);
1135 equeue_event_period(p, e->period);
1136 equeue_event_dtor(p, &EventQueue::function_dtor<C>);
1137 return equeue_post(e->equeue, &EventQueue::function_call<C>, p);
1140 template <
typename F>
1141 static void event_dtor(
struct event *e)
1143 ((F *)(e + 1))->~F();
1155 template <
typename F,
typename C0>
1156 Event(EventQueue *q, F f, C0 c0)
1158 new (
this) Event(q, EventQueue::context12<F, C0, A0, A1>(f, c0));
1169 template <
typename F,
typename C0,
typename C1>
1170 Event(EventQueue *q, F f, C0 c0, C1 c1)
1172 new (
this) Event(q, EventQueue::context22<F, C0, C1, A0, A1>(f, c0, c1));
1183 template <
typename F,
typename C0,
typename C1,
typename C2>
1184 Event(EventQueue *q, F f, C0 c0, C1 c1, C2 c2)
1186 new (
this) Event(q, EventQueue::context32<F, C0, C1, C2, A0, A1>(f, c0, c1, c2));
1197 template <
typename F,
typename C0,
typename C1,
typename C2,
typename C3>
1198 Event(EventQueue *q, F f, C0 c0, C1 c1, C2 c2, C3 c3)
1200 new (
this) Event(q, EventQueue::context42<F, C0, C1, C2, C3, A0, A1>(f, c0, c1, c2, c3));
1211 template <
typename F,
typename C0,
typename C1,
typename C2,
typename C3,
typename C4>
1212 Event(EventQueue *q, F f, C0 c0, C1 c1, C2 c2, C3 c3, C4 c4)
1214 new (
this) Event(q, EventQueue::context52<F, C0, C1, C2, C3, C4, A0, A1>(f, c0, c1, c2, c3, c4));
1220 template <
typename T,
typename R,
typename B0>
1221 Event(EventQueue *q, T *obj, R(T::*method)(B0, A0, A1), B0 b0)
1229 template <
typename T,
typename R,
typename B0>
1230 Event(EventQueue *q,
const T *obj, R(T::*method)(B0, A0, A1)
const, B0 b0)
1238 template <
typename T,
typename R,
typename B0>
1239 Event(EventQueue *q,
volatile T *obj, R(T::*method)(B0, A0, A1)
volatile, B0 b0)
1247 template <
typename T,
typename R,
typename B0>
1248 Event(EventQueue *q,
const volatile T *obj, R(T::*method)(B0, A0, A1)
const volatile, B0 b0)
1256 template <
typename T,
typename R,
typename B0,
typename B1>
1257 Event(EventQueue *q, T *obj, R(T::*method)(B0, B1, A0, A1), B0 b0, B1 b1)
1265 template <
typename T,
typename R,
typename B0,
typename B1>
1266 Event(EventQueue *q,
const T *obj, R(T::*method)(B0, B1, A0, A1)
const, B0 b0, B1 b1)
1274 template <
typename T,
typename R,
typename B0,
typename B1>
1275 Event(EventQueue *q,
volatile T *obj, R(T::*method)(B0, B1, A0, A1)
volatile, B0 b0, B1 b1)
1283 template <
typename T,
typename R,
typename B0,
typename B1>
1284 Event(EventQueue *q,
const volatile T *obj, R(T::*method)(B0, B1, A0, A1)
const volatile, B0 b0, B1 b1)
1292 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2>
1293 Event(EventQueue *q, T *obj, R(T::*method)(B0, B1, B2, A0, A1), B0 b0, B1 b1, B2 b2)
1301 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2>
1302 Event(EventQueue *q,
const T *obj, R(T::*method)(B0, B1, B2, A0, A1)
const, B0 b0, B1 b1, B2 b2)
1310 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2>
1311 Event(EventQueue *q,
volatile T *obj, R(T::*method)(B0, B1, B2, A0, A1)
volatile, B0 b0, B1 b1, B2 b2)
1319 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2>
1320 Event(EventQueue *q,
const volatile T *obj, R(T::*method)(B0, B1, B2, A0, A1)
const volatile, B0 b0, B1 b1, B2 b2)
1328 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3>
1329 Event(EventQueue *q, T *obj, R(T::*method)(B0, B1, B2, B3, A0, A1), B0 b0, B1 b1, B2 b2, B3 b3)
1331 new (
this) Event(q,
mbed::callback(obj, method), b0, b1, b2, b3);
1337 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3>
1338 Event(EventQueue *q,
const T *obj, R(T::*method)(B0, B1, B2, B3, A0, A1)
const, B0 b0, B1 b1, B2 b2, B3 b3)
1340 new (
this) Event(q,
mbed::callback(obj, method), b0, b1, b2, b3);
1346 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3>
1347 Event(EventQueue *q,
volatile T *obj, R(T::*method)(B0, B1, B2, B3, A0, A1)
volatile, B0 b0, B1 b1, B2 b2, B3 b3)
1349 new (
this) Event(q,
mbed::callback(obj, method), b0, b1, b2, b3);
1355 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3>
1356 Event(EventQueue *q,
const volatile T *obj, R(T::*method)(B0, B1, B2, B3, A0, A1)
const volatile, B0 b0, B1 b1, B2 b2, B3 b3)
1358 new (
this) Event(q,
mbed::callback(obj, method), b0, b1, b2, b3);
1364 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename B4>
1365 Event(EventQueue *q, T *obj, R(T::*method)(B0, B1, B2, B3, B4, A0, A1), B0 b0, B1 b1, B2 b2, B3 b3, B4 b4)
1367 new (
this) Event(q,
mbed::callback(obj, method), b0, b1, b2, b3, b4);
1373 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename B4>
1374 Event(EventQueue *q,
const T *obj, R(T::*method)(B0, B1, B2, B3, B4, A0, A1)
const, B0 b0, B1 b1, B2 b2, B3 b3, B4 b4)
1376 new (
this) Event(q,
mbed::callback(obj, method), b0, b1, b2, b3, b4);
1382 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename B4>
1383 Event(EventQueue *q,
volatile T *obj, R(T::*method)(B0, B1, B2, B3, B4, A0, A1)
volatile, B0 b0, B1 b1, B2 b2, B3 b3, B4 b4)
1385 new (
this) Event(q,
mbed::callback(obj, method), b0, b1, b2, b3, b4);
1391 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename B4>
1392 Event(EventQueue *q,
const volatile T *obj, R(T::*method)(B0, B1, B2, B3, B4, A0, A1)
const volatile, B0 b0, B1 b1, B2 b2, B3 b3, B4 b4)
1394 new (
this) Event(q,
mbed::callback(obj, method), b0, b1, b2, b3, b4);
1403 template <
typename A0,
typename A1,
typename A2>
1404 class Event<void(A0, A1, A2)> {
1415 template <
typename F>
1416 Event(EventQueue *q, F f)
1418 _event =
static_cast<struct event *
>(
1419 equeue_alloc(&q->_equeue,
sizeof(
struct event) +
sizeof(F)));
1422 _event->equeue = &q->_equeue;
1425 _event->period = -1;
1427 _event->post = &Event::event_post<F>;
1428 _event->dtor = &Event::event_dtor<F>;
1430 new (_event + 1) F(f);
1438 Event(
const Event &e)
1449 Event &operator=(
const Event &that)
1451 if (
this != &that) {
1453 new (
this) Event(that);
1465 if (_event->ref == 0) {
1466 _event->dtor(_event);
1467 equeue_dealloc(_event->equeue, _event);
1476 void delay(
int delay)
1479 _event->delay = delay;
1487 void period(
int period)
1490 _event->period = period;
1507 int post(A0 a0, A1 a1, A2 a2)
const 1513 _event->id = _event->post(_event, a0, a1, a2);
1521 void call(A0 a0, A1 a1, A2 a2)
const 1531 void operator()(A0 a0, A1 a1, A2 a2)
const 1533 return call(a0, a1, a2);
1541 static void thunk(
void *func, A0 a0, A1 a1, A2 a2)
1543 return static_cast<Event *
>(func)->call(a0, a1, a2);
1560 equeue_cancel(_event->equeue, _event->id);
1573 int (*post)(
struct event *, A0 a0, A1 a1, A2 a2);
1574 void (*dtor)(
struct event *);
1580 template <
typename F>
1581 static int event_post(
struct event *e, A0 a0, A1 a1, A2 a2)
1583 typedef EventQueue::context30<F, A0, A1, A2> C;
1584 void *p = equeue_alloc(e->equeue,
sizeof(C));
1589 new (p) C(*(F *)(e + 1), a0, a1, a2);
1590 equeue_event_delay(p, e->delay);
1591 equeue_event_period(p, e->period);
1592 equeue_event_dtor(p, &EventQueue::function_dtor<C>);
1593 return equeue_post(e->equeue, &EventQueue::function_call<C>, p);
1596 template <
typename F>
1597 static void event_dtor(
struct event *e)
1599 ((F *)(e + 1))->~F();
1611 template <
typename F,
typename C0>
1612 Event(EventQueue *q, F f, C0 c0)
1614 new (
this) Event(q, EventQueue::context13<F, C0, A0, A1, A2>(f, c0));
1625 template <
typename F,
typename C0,
typename C1>
1626 Event(EventQueue *q, F f, C0 c0, C1 c1)
1628 new (
this) Event(q, EventQueue::context23<F, C0, C1, A0, A1, A2>(f, c0, c1));
1639 template <
typename F,
typename C0,
typename C1,
typename C2>
1640 Event(EventQueue *q, F f, C0 c0, C1 c1, C2 c2)
1642 new (
this) Event(q, EventQueue::context33<F, C0, C1, C2, A0, A1, A2>(f, c0, c1, c2));
1653 template <
typename F,
typename C0,
typename C1,
typename C2,
typename C3>
1654 Event(EventQueue *q, F f, C0 c0, C1 c1, C2 c2, C3 c3)
1656 new (
this) Event(q, EventQueue::context43<F, C0, C1, C2, C3, A0, A1, A2>(f, c0, c1, c2, c3));
1667 template <
typename F,
typename C0,
typename C1,
typename C2,
typename C3,
typename C4>
1668 Event(EventQueue *q, F f, C0 c0, C1 c1, C2 c2, C3 c3, C4 c4)
1670 new (
this) Event(q, EventQueue::context53<F, C0, C1, C2, C3, C4, A0, A1, A2>(f, c0, c1, c2, c3, c4));
1676 template <
typename T,
typename R,
typename B0>
1677 Event(EventQueue *q, T *obj, R(T::*method)(B0, A0, A1, A2), B0 b0)
1685 template <
typename T,
typename R,
typename B0>
1686 Event(EventQueue *q,
const T *obj, R(T::*method)(B0, A0, A1, A2)
const, B0 b0)
1694 template <
typename T,
typename R,
typename B0>
1695 Event(EventQueue *q,
volatile T *obj, R(T::*method)(B0, A0, A1, A2)
volatile, B0 b0)
1703 template <
typename T,
typename R,
typename B0>
1704 Event(EventQueue *q,
const volatile T *obj, R(T::*method)(B0, A0, A1, A2)
const volatile, B0 b0)
1712 template <
typename T,
typename R,
typename B0,
typename B1>
1713 Event(EventQueue *q, T *obj, R(T::*method)(B0, B1, A0, A1, A2), B0 b0, B1 b1)
1721 template <
typename T,
typename R,
typename B0,
typename B1>
1722 Event(EventQueue *q,
const T *obj, R(T::*method)(B0, B1, A0, A1, A2)
const, B0 b0, B1 b1)
1730 template <
typename T,
typename R,
typename B0,
typename B1>
1731 Event(EventQueue *q,
volatile T *obj, R(T::*method)(B0, B1, A0, A1, A2)
volatile, B0 b0, B1 b1)
1739 template <
typename T,
typename R,
typename B0,
typename B1>
1740 Event(EventQueue *q,
const volatile T *obj, R(T::*method)(B0, B1, A0, A1, A2)
const volatile, B0 b0, B1 b1)
1748 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2>
1749 Event(EventQueue *q, T *obj, R(T::*method)(B0, B1, B2, A0, A1, A2), B0 b0, B1 b1, B2 b2)
1757 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2>
1758 Event(EventQueue *q,
const T *obj, R(T::*method)(B0, B1, B2, A0, A1, A2)
const, B0 b0, B1 b1, B2 b2)
1766 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2>
1767 Event(EventQueue *q,
volatile T *obj, R(T::*method)(B0, B1, B2, A0, A1, A2)
volatile, B0 b0, B1 b1, B2 b2)
1775 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2>
1776 Event(EventQueue *q,
const volatile T *obj, R(T::*method)(B0, B1, B2, A0, A1, A2)
const volatile, B0 b0, B1 b1, B2 b2)
1784 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3>
1785 Event(EventQueue *q, T *obj, R(T::*method)(B0, B1, B2, B3, A0, A1, A2), B0 b0, B1 b1, B2 b2, B3 b3)
1787 new (
this) Event(q,
mbed::callback(obj, method), b0, b1, b2, b3);
1793 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3>
1794 Event(EventQueue *q,
const T *obj, R(T::*method)(B0, B1, B2, B3, A0, A1, A2)
const, B0 b0, B1 b1, B2 b2, B3 b3)
1796 new (
this) Event(q,
mbed::callback(obj, method), b0, b1, b2, b3);
1802 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3>
1803 Event(EventQueue *q,
volatile T *obj, R(T::*method)(B0, B1, B2, B3, A0, A1, A2)
volatile, B0 b0, B1 b1, B2 b2, B3 b3)
1805 new (
this) Event(q,
mbed::callback(obj, method), b0, b1, b2, b3);
1811 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3>
1812 Event(EventQueue *q,
const volatile T *obj, R(T::*method)(B0, B1, B2, B3, A0, A1, A2)
const volatile, B0 b0, B1 b1, B2 b2, B3 b3)
1814 new (
this) Event(q,
mbed::callback(obj, method), b0, b1, b2, b3);
1820 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename B4>
1821 Event(EventQueue *q, T *obj, R(T::*method)(B0, B1, B2, B3, B4, A0, A1, A2), B0 b0, B1 b1, B2 b2, B3 b3, B4 b4)
1823 new (
this) Event(q,
mbed::callback(obj, method), b0, b1, b2, b3, b4);
1829 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename B4>
1830 Event(EventQueue *q,
const T *obj, R(T::*method)(B0, B1, B2, B3, B4, A0, A1, A2)
const, B0 b0, B1 b1, B2 b2, B3 b3, B4 b4)
1832 new (
this) Event(q,
mbed::callback(obj, method), b0, b1, b2, b3, b4);
1838 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename B4>
1839 Event(EventQueue *q,
volatile T *obj, R(T::*method)(B0, B1, B2, B3, B4, A0, A1, A2)
volatile, B0 b0, B1 b1, B2 b2, B3 b3, B4 b4)
1841 new (
this) Event(q,
mbed::callback(obj, method), b0, b1, b2, b3, b4);
1847 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename B4>
1848 Event(EventQueue *q,
const volatile T *obj, R(T::*method)(B0, B1, B2, B3, B4, A0, A1, A2)
const volatile, B0 b0, B1 b1, B2 b2, B3 b3, B4 b4)
1850 new (
this) Event(q,
mbed::callback(obj, method), b0, b1, b2, b3, b4);
1859 template <
typename A0,
typename A1,
typename A2,
typename A3>
1860 class Event<void(A0, A1, A2, A3)> {
1871 template <
typename F>
1872 Event(EventQueue *q, F f)
1874 _event =
static_cast<struct event *
>(
1875 equeue_alloc(&q->_equeue,
sizeof(
struct event) +
sizeof(F)));
1878 _event->equeue = &q->_equeue;
1881 _event->period = -1;
1883 _event->post = &Event::event_post<F>;
1884 _event->dtor = &Event::event_dtor<F>;
1886 new (_event + 1) F(f);
1894 Event(
const Event &e)
1905 Event &operator=(
const Event &that)
1907 if (
this != &that) {
1909 new (
this) Event(that);
1921 if (_event->ref == 0) {
1922 _event->dtor(_event);
1923 equeue_dealloc(_event->equeue, _event);
1932 void delay(
int delay)
1935 _event->delay = delay;
1943 void period(
int period)
1946 _event->period = period;
1963 int post(A0 a0, A1 a1, A2 a2, A3 a3)
const 1969 _event->id = _event->post(_event, a0, a1, a2, a3);
1977 void call(A0 a0, A1 a1, A2 a2, A3 a3)
const 1987 void operator()(A0 a0, A1 a1, A2 a2, A3 a3)
const 1989 return call(a0, a1, a2, a3);
1997 static void thunk(
void *func, A0 a0, A1 a1, A2 a2, A3 a3)
1999 return static_cast<Event *
>(func)->call(a0, a1, a2, a3);
2016 equeue_cancel(_event->equeue, _event->id);
2029 int (*post)(
struct event *, A0 a0, A1 a1, A2 a2, A3 a3);
2030 void (*dtor)(
struct event *);
2036 template <
typename F>
2037 static int event_post(
struct event *e, A0 a0, A1 a1, A2 a2, A3 a3)
2039 typedef EventQueue::context40<F, A0, A1, A2, A3> C;
2040 void *p = equeue_alloc(e->equeue,
sizeof(C));
2045 new (p) C(*(F *)(e + 1), a0, a1, a2, a3);
2046 equeue_event_delay(p, e->delay);
2047 equeue_event_period(p, e->period);
2048 equeue_event_dtor(p, &EventQueue::function_dtor<C>);
2049 return equeue_post(e->equeue, &EventQueue::function_call<C>, p);
2052 template <
typename F>
2053 static void event_dtor(
struct event *e)
2055 ((F *)(e + 1))->~F();
2059 #if !defined(DOXYGEN_ONLY) 2068 template <
typename F,
typename C0>
2069 Event(EventQueue *q, F f, C0 c0)
2071 new (
this) Event(q, EventQueue::context14<F, C0, A0, A1, A2, A3>(f, c0));
2082 template <
typename F,
typename C0,
typename C1>
2083 Event(EventQueue *q, F f, C0 c0, C1 c1)
2085 new (
this) Event(q, EventQueue::context24<F, C0, C1, A0, A1, A2, A3>(f, c0, c1));
2096 template <
typename F,
typename C0,
typename C1,
typename C2>
2097 Event(EventQueue *q, F f, C0 c0, C1 c1, C2 c2)
2099 new (
this) Event(q, EventQueue::context34<F, C0, C1, C2, A0, A1, A2, A3>(f, c0, c1, c2));
2110 template <
typename F,
typename C0,
typename C1,
typename C2,
typename C3>
2111 Event(EventQueue *q, F f, C0 c0, C1 c1, C2 c2, C3 c3)
2113 new (
this) Event(q, EventQueue::context44<F, C0, C1, C2, C3, A0, A1, A2, A3>(f, c0, c1, c2, c3));
2124 template <
typename F,
typename C0,
typename C1,
typename C2,
typename C3,
typename C4>
2125 Event(EventQueue *q, F f, C0 c0, C1 c1, C2 c2, C3 c3, C4 c4)
2127 new (
this) Event(q, EventQueue::context54<F, C0, C1, C2, C3, C4, A0, A1, A2, A3>(f, c0, c1, c2, c3, c4));
2133 template <
typename T,
typename R,
typename B0>
2134 Event(EventQueue *q, T *obj, R(T::*method)(B0, A0, A1, A2, A3), B0 b0)
2142 template <
typename T,
typename R,
typename B0>
2143 Event(EventQueue *q,
const T *obj, R(T::*method)(B0, A0, A1, A2, A3)
const, B0 b0)
2151 template <
typename T,
typename R,
typename B0>
2152 Event(EventQueue *q,
volatile T *obj, R(T::*method)(B0, A0, A1, A2, A3)
volatile, B0 b0)
2160 template <
typename T,
typename R,
typename B0>
2161 Event(EventQueue *q,
const volatile T *obj, R(T::*method)(B0, A0, A1, A2, A3)
const volatile, B0 b0)
2169 template <
typename T,
typename R,
typename B0,
typename B1>
2170 Event(EventQueue *q, T *obj, R(T::*method)(B0, B1, A0, A1, A2, A3), B0 b0, B1 b1)
2178 template <
typename T,
typename R,
typename B0,
typename B1>
2179 Event(EventQueue *q,
const T *obj, R(T::*method)(B0, B1, A0, A1, A2, A3)
const, B0 b0, B1 b1)
2187 template <
typename T,
typename R,
typename B0,
typename B1>
2188 Event(EventQueue *q,
volatile T *obj, R(T::*method)(B0, B1, A0, A1, A2, A3)
volatile, B0 b0, B1 b1)
2196 template <
typename T,
typename R,
typename B0,
typename B1>
2197 Event(EventQueue *q,
const volatile T *obj, R(T::*method)(B0, B1, A0, A1, A2, A3)
const volatile, B0 b0, B1 b1)
2205 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2>
2206 Event(EventQueue *q, T *obj, R(T::*method)(B0, B1, B2, A0, A1, A2, A3), B0 b0, B1 b1, B2 b2)
2214 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2>
2215 Event(EventQueue *q,
const T *obj, R(T::*method)(B0, B1, B2, A0, A1, A2, A3)
const, B0 b0, B1 b1, B2 b2)
2223 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2>
2224 Event(EventQueue *q,
volatile T *obj, R(T::*method)(B0, B1, B2, A0, A1, A2, A3)
volatile, B0 b0, B1 b1, B2 b2)
2232 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2>
2233 Event(EventQueue *q,
const volatile T *obj, R(T::*method)(B0, B1, B2, A0, A1, A2, A3)
const volatile, B0 b0, B1 b1, B2 b2)
2241 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3>
2242 Event(EventQueue *q, T *obj, R(T::*method)(B0, B1, B2, B3, A0, A1, A2, A3), B0 b0, B1 b1, B2 b2, B3 b3)
2244 new (
this) Event(q,
mbed::callback(obj, method), b0, b1, b2, b3);
2250 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3>
2251 Event(EventQueue *q,
const T *obj, R(T::*method)(B0, B1, B2, B3, A0, A1, A2, A3)
const, B0 b0, B1 b1, B2 b2, B3 b3)
2253 new (
this) Event(q,
mbed::callback(obj, method), b0, b1, b2, b3);
2259 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3>
2260 Event(EventQueue *q,
volatile T *obj, R(T::*method)(B0, B1, B2, B3, A0, A1, A2, A3)
volatile, B0 b0, B1 b1, B2 b2, B3 b3)
2262 new (
this) Event(q,
mbed::callback(obj, method), b0, b1, b2, b3);
2268 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3>
2269 Event(EventQueue *q,
const volatile T *obj, R(T::*method)(B0, B1, B2, B3, A0, A1, A2, A3)
const volatile, B0 b0, B1 b1, B2 b2, B3 b3)
2271 new (
this) Event(q,
mbed::callback(obj, method), b0, b1, b2, b3);
2277 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename B4>
2278 Event(EventQueue *q, T *obj, R(T::*method)(B0, B1, B2, B3, B4, A0, A1, A2, A3), B0 b0, B1 b1, B2 b2, B3 b3, B4 b4)
2280 new (
this) Event(q,
mbed::callback(obj, method), b0, b1, b2, b3, b4);
2286 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename B4>
2287 Event(EventQueue *q,
const T *obj, R(T::*method)(B0, B1, B2, B3, B4, A0, A1, A2, A3)
const, B0 b0, B1 b1, B2 b2, B3 b3, B4 b4)
2289 new (
this) Event(q,
mbed::callback(obj, method), b0, b1, b2, b3, b4);
2295 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename B4>
2296 Event(EventQueue *q,
volatile T *obj, R(T::*method)(B0, B1, B2, B3, B4, A0, A1, A2, A3)
volatile, B0 b0, B1 b1, B2 b2, B3 b3, B4 b4)
2298 new (
this) Event(q,
mbed::callback(obj, method), b0, b1, b2, b3, b4);
2304 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename B4>
2305 Event(EventQueue *q,
const volatile T *obj, R(T::*method)(B0, B1, B2, B3, B4, A0, A1, A2, A3)
const volatile, B0 b0, B1 b1, B2 b2, B3 b3, B4 b4)
2307 new (
this) Event(q,
mbed::callback(obj, method), b0, b1, b2, b3, b4);
2316 template <
typename A0,
typename A1,
typename A2,
typename A3,
typename A4>
2317 class Event<void(A0, A1, A2, A3, A4)> {
2328 template <
typename F>
2329 Event(EventQueue *q, F f)
2331 _event =
static_cast<struct event *
>(
2332 equeue_alloc(&q->_equeue,
sizeof(
struct event) +
sizeof(F)));
2335 _event->equeue = &q->_equeue;
2338 _event->period = -1;
2340 _event->post = &Event::event_post<F>;
2341 _event->dtor = &Event::event_dtor<F>;
2343 new (_event + 1) F(f);
2351 Event(
const Event &e)
2362 Event &operator=(
const Event &that)
2364 if (
this != &that) {
2366 new (
this) Event(that);
2378 if (_event->ref == 0) {
2379 _event->dtor(_event);
2380 equeue_dealloc(_event->equeue, _event);
2389 void delay(
int delay)
2392 _event->delay = delay;
2400 void period(
int period)
2403 _event->period = period;
2420 int post(A0 a0, A1 a1, A2 a2, A3 a3, A4 a4)
const 2426 _event->id = _event->post(_event, a0, a1, a2, a3, a4);
2434 void call(A0 a0, A1 a1, A2 a2, A3 a3, A4 a4)
const 2444 void operator()(A0 a0, A1 a1, A2 a2, A3 a3, A4 a4)
const 2446 return call(a0, a1, a2, a3, a4);
2454 static void thunk(
void *func, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4)
2456 return static_cast<Event *
>(func)->call(a0, a1, a2, a3, a4);
2473 equeue_cancel(_event->equeue, _event->id);
2486 int (*post)(
struct event *, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4);
2487 void (*dtor)(
struct event *);
2493 template <
typename F>
2494 static int event_post(
struct event *e, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4)
2496 typedef EventQueue::context50<F, A0, A1, A2, A3, A4> C;
2497 void *p = equeue_alloc(e->equeue,
sizeof(C));
2502 new (p) C(*(F *)(e + 1), a0, a1, a2, a3, a4);
2503 equeue_event_delay(p, e->delay);
2504 equeue_event_period(p, e->period);
2505 equeue_event_dtor(p, &EventQueue::function_dtor<C>);
2506 return equeue_post(e->equeue, &EventQueue::function_call<C>, p);
2509 template <
typename F>
2510 static void event_dtor(
struct event *e)
2512 ((F *)(e + 1))->~F();
2524 template <
typename F,
typename C0>
2525 Event(EventQueue *q, F f, C0 c0)
2527 new (
this) Event(q, EventQueue::context15<F, C0, A0, A1, A2, A3, A4>(f, c0));
2538 template <
typename F,
typename C0,
typename C1>
2539 Event(EventQueue *q, F f, C0 c0, C1 c1)
2541 new (
this) Event(q, EventQueue::context25<F, C0, C1, A0, A1, A2, A3, A4>(f, c0, c1));
2552 template <
typename F,
typename C0,
typename C1,
typename C2>
2553 Event(EventQueue *q, F f, C0 c0, C1 c1, C2 c2)
2555 new (
this) Event(q, EventQueue::context35<F, C0, C1, C2, A0, A1, A2, A3, A4>(f, c0, c1, c2));
2566 template <
typename F,
typename C0,
typename C1,
typename C2,
typename C3>
2567 Event(EventQueue *q, F f, C0 c0, C1 c1, C2 c2, C3 c3)
2569 new (
this) Event(q, EventQueue::context45<F, C0, C1, C2, C3, A0, A1, A2, A3, A4>(f, c0, c1, c2, c3));
2580 template <
typename F,
typename C0,
typename C1,
typename C2,
typename C3,
typename C4>
2581 Event(EventQueue *q, F f, C0 c0, C1 c1, C2 c2, C3 c3, C4 c4)
2583 new (
this) Event(q, EventQueue::context55<F, C0, C1, C2, C3, C4, A0, A1, A2, A3, A4>(f, c0, c1, c2, c3, c4));
2589 template <
typename T,
typename R,
typename B0>
2590 Event(EventQueue *q, T *obj, R(T::*method)(B0, A0, A1, A2, A3, A4), B0 b0)
2598 template <
typename T,
typename R,
typename B0>
2599 Event(EventQueue *q,
const T *obj, R(T::*method)(B0, A0, A1, A2, A3, A4)
const, B0 b0)
2607 template <
typename T,
typename R,
typename B0>
2608 Event(EventQueue *q,
volatile T *obj, R(T::*method)(B0, A0, A1, A2, A3, A4)
volatile, B0 b0)
2616 template <
typename T,
typename R,
typename B0>
2617 Event(EventQueue *q,
const volatile T *obj, R(T::*method)(B0, A0, A1, A2, A3, A4)
const volatile, B0 b0)
2625 template <
typename T,
typename R,
typename B0,
typename B1>
2626 Event(EventQueue *q, T *obj, R(T::*method)(B0, B1, A0, A1, A2, A3, A4), B0 b0, B1 b1)
2634 template <
typename T,
typename R,
typename B0,
typename B1>
2635 Event(EventQueue *q,
const T *obj, R(T::*method)(B0, B1, A0, A1, A2, A3, A4)
const, B0 b0, B1 b1)
2643 template <
typename T,
typename R,
typename B0,
typename B1>
2644 Event(EventQueue *q,
volatile T *obj, R(T::*method)(B0, B1, A0, A1, A2, A3, A4)
volatile, B0 b0, B1 b1)
2652 template <
typename T,
typename R,
typename B0,
typename B1>
2653 Event(EventQueue *q,
const volatile T *obj, R(T::*method)(B0, B1, A0, A1, A2, A3, A4)
const volatile, B0 b0, B1 b1)
2661 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2>
2662 Event(EventQueue *q, T *obj, R(T::*method)(B0, B1, B2, A0, A1, A2, A3, A4), B0 b0, B1 b1, B2 b2)
2670 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2>
2671 Event(EventQueue *q,
const T *obj, R(T::*method)(B0, B1, B2, A0, A1, A2, A3, A4)
const, B0 b0, B1 b1, B2 b2)
2679 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2>
2680 Event(EventQueue *q,
volatile T *obj, R(T::*method)(B0, B1, B2, A0, A1, A2, A3, A4)
volatile, B0 b0, B1 b1, B2 b2)
2688 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2>
2689 Event(EventQueue *q,
const volatile T *obj, R(T::*method)(B0, B1, B2, A0, A1, A2, A3, A4)
const volatile, B0 b0, B1 b1, B2 b2)
2697 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3>
2698 Event(EventQueue *q, T *obj, R(T::*method)(B0, B1, B2, B3, A0, A1, A2, A3, A4), B0 b0, B1 b1, B2 b2, B3 b3)
2700 new (
this) Event(q,
mbed::callback(obj, method), b0, b1, b2, b3);
2706 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3>
2707 Event(EventQueue *q,
const T *obj, R(T::*method)(B0, B1, B2, B3, A0, A1, A2, A3, A4)
const, B0 b0, B1 b1, B2 b2, B3 b3)
2709 new (
this) Event(q,
mbed::callback(obj, method), b0, b1, b2, b3);
2715 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3>
2716 Event(EventQueue *q,
volatile T *obj, R(T::*method)(B0, B1, B2, B3, A0, A1, A2, A3, A4)
volatile, B0 b0, B1 b1, B2 b2, B3 b3)
2718 new (
this) Event(q,
mbed::callback(obj, method), b0, b1, b2, b3);
2724 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3>
2725 Event(EventQueue *q,
const volatile T *obj, R(T::*method)(B0, B1, B2, B3, A0, A1, A2, A3, A4)
const volatile, B0 b0, B1 b1, B2 b2, B3 b3)
2727 new (
this) Event(q,
mbed::callback(obj, method), b0, b1, b2, b3);
2733 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename B4>
2734 Event(EventQueue *q, T *obj, R(T::*method)(B0, B1, B2, B3, B4, A0, A1, A2, A3, A4), B0 b0, B1 b1, B2 b2, B3 b3, B4 b4)
2736 new (
this) Event(q,
mbed::callback(obj, method), b0, b1, b2, b3, b4);
2742 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename B4>
2743 Event(EventQueue *q,
const T *obj, R(T::*method)(B0, B1, B2, B3, B4, A0, A1, A2, A3, A4)
const, B0 b0, B1 b1, B2 b2, B3 b3, B4 b4)
2745 new (
this) Event(q,
mbed::callback(obj, method), b0, b1, b2, b3, b4);
2751 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename B4>
2752 Event(EventQueue *q,
volatile T *obj, R(T::*method)(B0, B1, B2, B3, B4, A0, A1, A2, A3, A4)
volatile, B0 b0, B1 b1, B2 b2, B3 b3, B4 b4)
2754 new (
this) Event(q,
mbed::callback(obj, method), b0, b1, b2, b3, b4);
2760 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename B4>
2761 Event(EventQueue *q,
const volatile T *obj, R(T::*method)(B0, B1, B2, B3, B4, A0, A1, A2, A3, A4)
const volatile, B0 b0, B1 b1, B2 b2, B3 b3, B4 b4)
2763 new (
this) Event(q,
mbed::callback(obj, method), b0, b1, b2, b3, b4);
2773 template <
typename R>
2776 return Event<void()>(
this, func);
2779 template <
typename T,
typename R>
2785 template <
typename T,
typename R>
2791 template <
typename T,
typename R>
2797 template <
typename T,
typename R>
2798 Event<void()>
EventQueue::event(
const volatile T *obj, R(T::*method)()
const volatile)
2803 template <
typename R>
2806 return Event<void()>(
this, cb);
2809 template <
typename R,
typename B0,
typename C0>
2812 return Event<void()>(
this, func, c0);
2815 template <
typename T,
typename R,
typename B0,
typename C0>
2821 template <
typename T,
typename R,
typename B0,
typename C0>
2827 template <
typename T,
typename R,
typename B0,
typename C0>
2828 Event<void()>
EventQueue::event(
volatile T *obj, R(T::*method)(B0)
volatile, C0 c0)
2833 template <
typename T,
typename R,
typename B0,
typename C0>
2834 Event<void()>
EventQueue::event(
const volatile T *obj, R(T::*method)(B0)
const volatile, C0 c0)
2839 template <
typename R,
typename B0,
typename C0>
2842 return Event<void()>(
this, cb, c0);
2845 template <
typename R,
typename B0,
typename B1,
typename C0,
typename C1>
2848 return Event<void()>(
this, func, c0, c1);
2851 template <
typename T,
typename R,
typename B0,
typename B1,
typename C0,
typename C1>
2857 template <
typename T,
typename R,
typename B0,
typename B1,
typename C0,
typename C1>
2858 Event<void()>
EventQueue::event(
const T *obj, R(T::*method)(B0, B1)
const, C0 c0, C1 c1)
2863 template <
typename T,
typename R,
typename B0,
typename B1,
typename C0,
typename C1>
2864 Event<void()>
EventQueue::event(
volatile T *obj, R(T::*method)(B0, B1)
volatile, C0 c0, C1 c1)
2869 template <
typename T,
typename R,
typename B0,
typename B1,
typename C0,
typename C1>
2870 Event<void()>
EventQueue::event(
const volatile T *obj, R(T::*method)(B0, B1)
const volatile, C0 c0, C1 c1)
2875 template <
typename R,
typename B0,
typename B1,
typename C0,
typename C1>
2878 return Event<void()>(
this, cb, c0, c1);
2881 template <
typename R,
typename B0,
typename B1,
typename B2,
typename C0,
typename C1,
typename C2>
2884 return Event<void()>(
this, func, c0, c1, c2);
2887 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename C0,
typename C1,
typename C2>
2888 Event<void()>
EventQueue::event(T *obj, R(T::*method)(B0, B1, B2), C0 c0, C1 c1, C2 c2)
2890 return Event<void()>(
this,
mbed::callback(obj, method), c0, c1, c2);
2893 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename C0,
typename C1,
typename C2>
2894 Event<void()>
EventQueue::event(
const T *obj, R(T::*method)(B0, B1, B2)
const, C0 c0, C1 c1, C2 c2)
2896 return Event<void()>(
this,
mbed::callback(obj, method), c0, c1, c2);
2899 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename C0,
typename C1,
typename C2>
2900 Event<void()>
EventQueue::event(
volatile T *obj, R(T::*method)(B0, B1, B2)
volatile, C0 c0, C1 c1, C2 c2)
2902 return Event<void()>(
this,
mbed::callback(obj, method), c0, c1, c2);
2905 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename C0,
typename C1,
typename C2>
2906 Event<void()>
EventQueue::event(
const volatile T *obj, R(T::*method)(B0, B1, B2)
const volatile, C0 c0, C1 c1, C2 c2)
2908 return Event<void()>(
this,
mbed::callback(obj, method), c0, c1, c2);
2911 template <
typename R,
typename B0,
typename B1,
typename B2,
typename C0,
typename C1,
typename C2>
2914 return Event<void()>(
this, cb, c0, c1, c2);
2917 template <
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename C0,
typename C1,
typename C2,
typename C3>
2918 Event<void()>
EventQueue::event(R(*func)(B0, B1, B2, B3), C0 c0, C1 c1, C2 c2, C3 c3)
2920 return Event<void()>(
this, func, c0, c1, c2, c3);
2923 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename C0,
typename C1,
typename C2,
typename C3>
2924 Event<void()>
EventQueue::event(T *obj, R(T::*method)(B0, B1, B2, B3), C0 c0, C1 c1, C2 c2, C3 c3)
2926 return Event<void()>(
this,
mbed::callback(obj, method), c0, c1, c2, c3);
2929 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename C0,
typename C1,
typename C2,
typename C3>
2930 Event<void()>
EventQueue::event(
const T *obj, R(T::*method)(B0, B1, B2, B3)
const, C0 c0, C1 c1, C2 c2, C3 c3)
2932 return Event<void()>(
this,
mbed::callback(obj, method), c0, c1, c2, c3);
2935 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename C0,
typename C1,
typename C2,
typename C3>
2936 Event<void()>
EventQueue::event(
volatile T *obj, R(T::*method)(B0, B1, B2, B3)
volatile, C0 c0, C1 c1, C2 c2, C3 c3)
2938 return Event<void()>(
this,
mbed::callback(obj, method), c0, c1, c2, c3);
2941 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename C0,
typename C1,
typename C2,
typename C3>
2942 Event<void()>
EventQueue::event(
const volatile T *obj, R(T::*method)(B0, B1, B2, B3)
const volatile, C0 c0, C1 c1, C2 c2, C3 c3)
2944 return Event<void()>(
this,
mbed::callback(obj, method), c0, c1, c2, c3);
2947 template <
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename C0,
typename C1,
typename C2,
typename C3>
2950 return Event<void()>(
this, cb, c0, c1, c2, c3);
2953 template <
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename B4,
typename C0,
typename C1,
typename C2,
typename C3,
typename C4>
2954 Event<void()>
EventQueue::event(R(*func)(B0, B1, B2, B3, B4), C0 c0, C1 c1, C2 c2, C3 c3, C4 c4)
2956 return Event<void()>(
this, func, c0, c1, c2, c3, c4);
2959 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename B4,
typename C0,
typename C1,
typename C2,
typename C3,
typename C4>
2960 Event<void()>
EventQueue::event(T *obj, R(T::*method)(B0, B1, B2, B3, B4), C0 c0, C1 c1, C2 c2, C3 c3, C4 c4)
2962 return Event<void()>(
this,
mbed::callback(obj, method), c0, c1, c2, c3, c4);
2965 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename B4,
typename C0,
typename C1,
typename C2,
typename C3,
typename C4>
2966 Event<void()>
EventQueue::event(
const T *obj, R(T::*method)(B0, B1, B2, B3, B4)
const, C0 c0, C1 c1, C2 c2, C3 c3, C4 c4)
2968 return Event<void()>(
this,
mbed::callback(obj, method), c0, c1, c2, c3, c4);
2971 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename B4,
typename C0,
typename C1,
typename C2,
typename C3,
typename C4>
2972 Event<void()>
EventQueue::event(
volatile T *obj, R(T::*method)(B0, B1, B2, B3, B4)
volatile, C0 c0, C1 c1, C2 c2, C3 c3, C4 c4)
2974 return Event<void()>(
this,
mbed::callback(obj, method), c0, c1, c2, c3, c4);
2977 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename B4,
typename C0,
typename C1,
typename C2,
typename C3,
typename C4>
2978 Event<void()>
EventQueue::event(
const volatile T *obj, R(T::*method)(B0, B1, B2, B3, B4)
const volatile, C0 c0, C1 c1, C2 c2, C3 c3, C4 c4)
2980 return Event<void()>(
this,
mbed::callback(obj, method), c0, c1, c2, c3, c4);
2983 template <
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename B4,
typename C0,
typename C1,
typename C2,
typename C3,
typename C4>
2986 return Event<void()>(
this, cb, c0, c1, c2, c3, c4);
2989 template <
typename R,
typename A0>
2992 return Event<void(A0)>(
this, func);
2995 template <
typename T,
typename R,
typename A0>
3001 template <
typename T,
typename R,
typename A0>
3007 template <
typename T,
typename R,
typename A0>
3013 template <
typename T,
typename R,
typename A0>
3014 Event<void(A0)>
EventQueue::event(
const volatile T *obj, R(T::*method)(A0)
const volatile)
3019 template <
typename R,
typename A0>
3022 return Event<void(A0)>(
this, cb);
3025 template <
typename R,
typename B0,
typename C0,
typename A0>
3028 return Event<void(A0)>(
this, func, c0);
3031 template <
typename T,
typename R,
typename B0,
typename C0,
typename A0>
3037 template <
typename T,
typename R,
typename B0,
typename C0,
typename A0>
3038 Event<void(A0)>
EventQueue::event(
const T *obj, R(T::*method)(B0, A0)
const, C0 c0)
3043 template <
typename T,
typename R,
typename B0,
typename C0,
typename A0>
3044 Event<void(A0)>
EventQueue::event(
volatile T *obj, R(T::*method)(B0, A0)
volatile, C0 c0)
3049 template <
typename T,
typename R,
typename B0,
typename C0,
typename A0>
3050 Event<void(A0)>
EventQueue::event(
const volatile T *obj, R(T::*method)(B0, A0)
const volatile, C0 c0)
3055 template <
typename R,
typename B0,
typename C0,
typename A0>
3058 return Event<void(A0)>(
this, cb, c0);
3061 template <
typename R,
typename B0,
typename B1,
typename C0,
typename C1,
typename A0>
3064 return Event<void(A0)>(
this, func, c0, c1);
3067 template <
typename T,
typename R,
typename B0,
typename B1,
typename C0,
typename C1,
typename A0>
3068 Event<void(A0)>
EventQueue::event(T *obj, R(T::*method)(B0, B1, A0), C0 c0, C1 c1)
3070 return Event<void(A0)>(
this,
mbed::callback(obj, method), c0, c1);
3073 template <
typename T,
typename R,
typename B0,
typename B1,
typename C0,
typename C1,
typename A0>
3074 Event<void(A0)>
EventQueue::event(
const T *obj, R(T::*method)(B0, B1, A0)
const, C0 c0, C1 c1)
3076 return Event<void(A0)>(
this,
mbed::callback(obj, method), c0, c1);
3079 template <
typename T,
typename R,
typename B0,
typename B1,
typename C0,
typename C1,
typename A0>
3080 Event<void(A0)>
EventQueue::event(
volatile T *obj, R(T::*method)(B0, B1, A0)
volatile, C0 c0, C1 c1)
3082 return Event<void(A0)>(
this,
mbed::callback(obj, method), c0, c1);
3085 template <
typename T,
typename R,
typename B0,
typename B1,
typename C0,
typename C1,
typename A0>
3086 Event<void(A0)>
EventQueue::event(
const volatile T *obj, R(T::*method)(B0, B1, A0)
const volatile, C0 c0, C1 c1)
3088 return Event<void(A0)>(
this,
mbed::callback(obj, method), c0, c1);
3091 template <
typename R,
typename B0,
typename B1,
typename C0,
typename C1,
typename A0>
3094 return Event<void(A0)>(
this, cb, c0, c1);
3097 template <
typename R,
typename B0,
typename B1,
typename B2,
typename C0,
typename C1,
typename C2,
typename A0>
3098 Event<void(A0)>
EventQueue::event(R(*func)(B0, B1, B2, A0), C0 c0, C1 c1, C2 c2)
3100 return Event<void(A0)>(
this, func, c0, c1, c2);
3103 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename C0,
typename C1,
typename C2,
typename A0>
3104 Event<void(A0)>
EventQueue::event(T *obj, R(T::*method)(B0, B1, B2, A0), C0 c0, C1 c1, C2 c2)
3106 return Event<void(A0)>(
this,
mbed::callback(obj, method), c0, c1, c2);
3109 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename C0,
typename C1,
typename C2,
typename A0>
3110 Event<void(A0)>
EventQueue::event(
const T *obj, R(T::*method)(B0, B1, B2, A0)
const, C0 c0, C1 c1, C2 c2)
3112 return Event<void(A0)>(
this,
mbed::callback(obj, method), c0, c1, c2);
3115 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename C0,
typename C1,
typename C2,
typename A0>
3116 Event<void(A0)>
EventQueue::event(
volatile T *obj, R(T::*method)(B0, B1, B2, A0)
volatile, C0 c0, C1 c1, C2 c2)
3118 return Event<void(A0)>(
this,
mbed::callback(obj, method), c0, c1, c2);
3121 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename C0,
typename C1,
typename C2,
typename A0>
3122 Event<void(A0)>
EventQueue::event(
const volatile T *obj, R(T::*method)(B0, B1, B2, A0)
const volatile, C0 c0, C1 c1, C2 c2)
3124 return Event<void(A0)>(
this,
mbed::callback(obj, method), c0, c1, c2);
3127 template <
typename R,
typename B0,
typename B1,
typename B2,
typename C0,
typename C1,
typename C2,
typename A0>
3130 return Event<void(A0)>(
this, cb, c0, c1, c2);
3133 template <
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename C0,
typename C1,
typename C2,
typename C3,
typename A0>
3134 Event<void(A0)>
EventQueue::event(R(*func)(B0, B1, B2, B3, A0), C0 c0, C1 c1, C2 c2, C3 c3)
3136 return Event<void(A0)>(
this, func, c0, c1, c2, c3);
3139 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename C0,
typename C1,
typename C2,
typename C3,
typename A0>
3140 Event<void(A0)>
EventQueue::event(T *obj, R(T::*method)(B0, B1, B2, B3, A0), C0 c0, C1 c1, C2 c2, C3 c3)
3142 return Event<void(A0)>(
this,
mbed::callback(obj, method), c0, c1, c2, c3);
3145 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename C0,
typename C1,
typename C2,
typename C3,
typename A0>
3146 Event<void(A0)>
EventQueue::event(
const T *obj, R(T::*method)(B0, B1, B2, B3, A0)
const, C0 c0, C1 c1, C2 c2, C3 c3)
3148 return Event<void(A0)>(
this,
mbed::callback(obj, method), c0, c1, c2, c3);
3151 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename C0,
typename C1,
typename C2,
typename C3,
typename A0>
3152 Event<void(A0)>
EventQueue::event(
volatile T *obj, R(T::*method)(B0, B1, B2, B3, A0)
volatile, C0 c0, C1 c1, C2 c2, C3 c3)
3154 return Event<void(A0)>(
this,
mbed::callback(obj, method), c0, c1, c2, c3);
3157 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename C0,
typename C1,
typename C2,
typename C3,
typename A0>
3158 Event<void(A0)>
EventQueue::event(
const volatile T *obj, R(T::*method)(B0, B1, B2, B3, A0)
const volatile, C0 c0, C1 c1, C2 c2, C3 c3)
3160 return Event<void(A0)>(
this,
mbed::callback(obj, method), c0, c1, c2, c3);
3163 template <
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename C0,
typename C1,
typename C2,
typename C3,
typename A0>
3166 return Event<void(A0)>(
this, cb, c0, c1, c2, c3);
3169 template <
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename B4,
typename C0,
typename C1,
typename C2,
typename C3,
typename C4,
typename A0>
3170 Event<void(A0)>
EventQueue::event(R(*func)(B0, B1, B2, B3, B4, A0), C0 c0, C1 c1, C2 c2, C3 c3, C4 c4)
3172 return Event<void(A0)>(
this, func, c0, c1, c2, c3, c4);
3175 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename B4,
typename C0,
typename C1,
typename C2,
typename C3,
typename C4,
typename A0>
3176 Event<void(A0)>
EventQueue::event(T *obj, R(T::*method)(B0, B1, B2, B3, B4, A0), C0 c0, C1 c1, C2 c2, C3 c3, C4 c4)
3178 return Event<void(A0)>(
this,
mbed::callback(obj, method), c0, c1, c2, c3, c4);
3181 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename B4,
typename C0,
typename C1,
typename C2,
typename C3,
typename C4,
typename A0>
3182 Event<void(A0)>
EventQueue::event(
const T *obj, R(T::*method)(B0, B1, B2, B3, B4, A0)
const, C0 c0, C1 c1, C2 c2, C3 c3, C4 c4)
3184 return Event<void(A0)>(
this,
mbed::callback(obj, method), c0, c1, c2, c3, c4);
3187 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename B4,
typename C0,
typename C1,
typename C2,
typename C3,
typename C4,
typename A0>
3188 Event<void(A0)>
EventQueue::event(
volatile T *obj, R(T::*method)(B0, B1, B2, B3, B4, A0)
volatile, C0 c0, C1 c1, C2 c2, C3 c3, C4 c4)
3190 return Event<void(A0)>(
this,
mbed::callback(obj, method), c0, c1, c2, c3, c4);
3193 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename B4,
typename C0,
typename C1,
typename C2,
typename C3,
typename C4,
typename A0>
3194 Event<void(A0)>
EventQueue::event(
const volatile T *obj, R(T::*method)(B0, B1, B2, B3, B4, A0)
const volatile, C0 c0, C1 c1, C2 c2, C3 c3, C4 c4)
3196 return Event<void(A0)>(
this,
mbed::callback(obj, method), c0, c1, c2, c3, c4);
3199 template <
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename B4,
typename C0,
typename C1,
typename C2,
typename C3,
typename C4,
typename A0>
3200 Event<void(A0)>
EventQueue::event(
mbed::Callback<R(B0, B1, B2, B3, B4, A0)> cb, C0 c0, C1 c1, C2 c2, C3 c3, C4 c4)
3202 return Event<void(A0)>(
this, cb, c0, c1, c2, c3, c4);
3205 template <
typename R,
typename A0,
typename A1>
3208 return Event<void(A0, A1)>(
this, func);
3211 template <
typename T,
typename R,
typename A0,
typename A1>
3217 template <
typename T,
typename R,
typename A0,
typename A1>
3218 Event<void(A0, A1)>
EventQueue::event(
const T *obj, R(T::*method)(A0, A1)
const)
3223 template <
typename T,
typename R,
typename A0,
typename A1>
3224 Event<void(A0, A1)>
EventQueue::event(
volatile T *obj, R(T::*method)(A0, A1)
volatile)
3229 template <
typename T,
typename R,
typename A0,
typename A1>
3230 Event<void(A0, A1)>
EventQueue::event(
const volatile T *obj, R(T::*method)(A0, A1)
const volatile)
3235 template <
typename R,
typename A0,
typename A1>
3238 return Event<void(A0, A1)>(
this, cb);
3241 template <
typename R,
typename B0,
typename C0,
typename A0,
typename A1>
3244 return Event<void(A0, A1)>(
this, func, c0);
3247 template <
typename T,
typename R,
typename B0,
typename C0,
typename A0,
typename A1>
3250 return Event<void(A0, A1)>(
this,
mbed::callback(obj, method), c0);
3253 template <
typename T,
typename R,
typename B0,
typename C0,
typename A0,
typename A1>
3254 Event<void(A0, A1)>
EventQueue::event(
const T *obj, R(T::*method)(B0, A0, A1)
const, C0 c0)
3256 return Event<void(A0, A1)>(
this,
mbed::callback(obj, method), c0);
3259 template <
typename T,
typename R,
typename B0,
typename C0,
typename A0,
typename A1>
3260 Event<void(A0, A1)>
EventQueue::event(
volatile T *obj, R(T::*method)(B0, A0, A1)
volatile, C0 c0)
3262 return Event<void(A0, A1)>(
this,
mbed::callback(obj, method), c0);
3265 template <
typename T,
typename R,
typename B0,
typename C0,
typename A0,
typename A1>
3266 Event<void(A0, A1)>
EventQueue::event(
const volatile T *obj, R(T::*method)(B0, A0, A1)
const volatile, C0 c0)
3268 return Event<void(A0, A1)>(
this,
mbed::callback(obj, method), c0);
3271 template <
typename R,
typename B0,
typename C0,
typename A0,
typename A1>
3274 return Event<void(A0, A1)>(
this, cb, c0);
3277 template <
typename R,
typename B0,
typename B1,
typename C0,
typename C1,
typename A0,
typename A1>
3280 return Event<void(A0, A1)>(
this, func, c0, c1);
3283 template <
typename T,
typename R,
typename B0,
typename B1,
typename C0,
typename C1,
typename A0,
typename A1>
3284 Event<void(A0, A1)>
EventQueue::event(T *obj, R(T::*method)(B0, B1, A0, A1), C0 c0, C1 c1)
3286 return Event<void(A0, A1)>(
this,
mbed::callback(obj, method), c0, c1);
3289 template <
typename T,
typename R,
typename B0,
typename B1,
typename C0,
typename C1,
typename A0,
typename A1>
3290 Event<void(A0, A1)>
EventQueue::event(
const T *obj, R(T::*method)(B0, B1, A0, A1)
const, C0 c0, C1 c1)
3292 return Event<void(A0, A1)>(
this,
mbed::callback(obj, method), c0, c1);
3295 template <
typename T,
typename R,
typename B0,
typename B1,
typename C0,
typename C1,
typename A0,
typename A1>
3296 Event<void(A0, A1)>
EventQueue::event(
volatile T *obj, R(T::*method)(B0, B1, A0, A1)
volatile, C0 c0, C1 c1)
3298 return Event<void(A0, A1)>(
this,
mbed::callback(obj, method), c0, c1);
3301 template <
typename T,
typename R,
typename B0,
typename B1,
typename C0,
typename C1,
typename A0,
typename A1>
3302 Event<void(A0, A1)>
EventQueue::event(
const volatile T *obj, R(T::*method)(B0, B1, A0, A1)
const volatile, C0 c0, C1 c1)
3304 return Event<void(A0, A1)>(
this,
mbed::callback(obj, method), c0, c1);
3307 template <
typename R,
typename B0,
typename B1,
typename C0,
typename C1,
typename A0,
typename A1>
3310 return Event<void(A0, A1)>(
this, cb, c0, c1);
3313 template <
typename R,
typename B0,
typename B1,
typename B2,
typename C0,
typename C1,
typename C2,
typename A0,
typename A1>
3314 Event<void(A0, A1)>
EventQueue::event(R(*func)(B0, B1, B2, A0, A1), C0 c0, C1 c1, C2 c2)
3316 return Event<void(A0, A1)>(
this, func, c0, c1, c2);
3319 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename C0,
typename C1,
typename C2,
typename A0,
typename A1>
3320 Event<void(A0, A1)>
EventQueue::event(T *obj, R(T::*method)(B0, B1, B2, A0, A1), C0 c0, C1 c1, C2 c2)
3322 return Event<void(A0, A1)>(
this,
mbed::callback(obj, method), c0, c1, c2);
3325 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename C0,
typename C1,
typename C2,
typename A0,
typename A1>
3326 Event<void(A0, A1)>
EventQueue::event(
const T *obj, R(T::*method)(B0, B1, B2, A0, A1)
const, C0 c0, C1 c1, C2 c2)
3328 return Event<void(A0, A1)>(
this,
mbed::callback(obj, method), c0, c1, c2);
3331 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename C0,
typename C1,
typename C2,
typename A0,
typename A1>
3332 Event<void(A0, A1)>
EventQueue::event(
volatile T *obj, R(T::*method)(B0, B1, B2, A0, A1)
volatile, C0 c0, C1 c1, C2 c2)
3334 return Event<void(A0, A1)>(
this,
mbed::callback(obj, method), c0, c1, c2);
3337 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename C0,
typename C1,
typename C2,
typename A0,
typename A1>
3338 Event<void(A0, A1)>
EventQueue::event(
const volatile T *obj, R(T::*method)(B0, B1, B2, A0, A1)
const volatile, C0 c0, C1 c1, C2 c2)
3340 return Event<void(A0, A1)>(
this,
mbed::callback(obj, method), c0, c1, c2);
3343 template <
typename R,
typename B0,
typename B1,
typename B2,
typename C0,
typename C1,
typename C2,
typename A0,
typename A1>
3346 return Event<void(A0, A1)>(
this, cb, c0, c1, c2);
3349 template <
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename C0,
typename C1,
typename C2,
typename C3,
typename A0,
typename A1>
3350 Event<void(A0, A1)>
EventQueue::event(R(*func)(B0, B1, B2, B3, A0, A1), C0 c0, C1 c1, C2 c2, C3 c3)
3352 return Event<void(A0, A1)>(
this, func, c0, c1, c2, c3);
3355 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename C0,
typename C1,
typename C2,
typename C3,
typename A0,
typename A1>
3356 Event<void(A0, A1)>
EventQueue::event(T *obj, R(T::*method)(B0, B1, B2, B3, A0, A1), C0 c0, C1 c1, C2 c2, C3 c3)
3358 return Event<void(A0, A1)>(
this,
mbed::callback(obj, method), c0, c1, c2, c3);
3361 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename C0,
typename C1,
typename C2,
typename C3,
typename A0,
typename A1>
3362 Event<void(A0, A1)>
EventQueue::event(
const T *obj, R(T::*method)(B0, B1, B2, B3, A0, A1)
const, C0 c0, C1 c1, C2 c2, C3 c3)
3364 return Event<void(A0, A1)>(
this,
mbed::callback(obj, method), c0, c1, c2, c3);
3367 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename C0,
typename C1,
typename C2,
typename C3,
typename A0,
typename A1>
3368 Event<void(A0, A1)>
EventQueue::event(
volatile T *obj, R(T::*method)(B0, B1, B2, B3, A0, A1)
volatile, C0 c0, C1 c1, C2 c2, C3 c3)
3370 return Event<void(A0, A1)>(
this,
mbed::callback(obj, method), c0, c1, c2, c3);
3373 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename C0,
typename C1,
typename C2,
typename C3,
typename A0,
typename A1>
3374 Event<void(A0, A1)>
EventQueue::event(
const volatile T *obj, R(T::*method)(B0, B1, B2, B3, A0, A1)
const volatile, C0 c0, C1 c1, C2 c2, C3 c3)
3376 return Event<void(A0, A1)>(
this,
mbed::callback(obj, method), c0, c1, c2, c3);
3379 template <
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename C0,
typename C1,
typename C2,
typename C3,
typename A0,
typename A1>
3380 Event<void(A0, A1)>
EventQueue::event(
mbed::Callback<R(B0, B1, B2, B3, A0, A1)> cb, C0 c0, C1 c1, C2 c2, C3 c3)
3382 return Event<void(A0, A1)>(
this, cb, c0, c1, c2, c3);
3385 template <
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename B4,
typename C0,
typename C1,
typename C2,
typename C3,
typename C4,
typename A0,
typename A1>
3386 Event<void(A0, A1)>
EventQueue::event(R(*func)(B0, B1, B2, B3, B4, A0, A1), C0 c0, C1 c1, C2 c2, C3 c3, C4 c4)
3388 return Event<void(A0, A1)>(
this, func, c0, c1, c2, c3, c4);
3391 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename B4,
typename C0,
typename C1,
typename C2,
typename C3,
typename C4,
typename A0,
typename A1>
3392 Event<void(A0, A1)>
EventQueue::event(T *obj, R(T::*method)(B0, B1, B2, B3, B4, A0, A1), C0 c0, C1 c1, C2 c2, C3 c3, C4 c4)
3394 return Event<void(A0, A1)>(
this,
mbed::callback(obj, method), c0, c1, c2, c3, c4);
3397 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename B4,
typename C0,
typename C1,
typename C2,
typename C3,
typename C4,
typename A0,
typename A1>
3398 Event<void(A0, A1)>
EventQueue::event(
const T *obj, R(T::*method)(B0, B1, B2, B3, B4, A0, A1)
const, C0 c0, C1 c1, C2 c2, C3 c3, C4 c4)
3400 return Event<void(A0, A1)>(
this,
mbed::callback(obj, method), c0, c1, c2, c3, c4);
3403 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename B4,
typename C0,
typename C1,
typename C2,
typename C3,
typename C4,
typename A0,
typename A1>
3404 Event<void(A0, A1)>
EventQueue::event(
volatile T *obj, R(T::*method)(B0, B1, B2, B3, B4, A0, A1)
volatile, C0 c0, C1 c1, C2 c2, C3 c3, C4 c4)
3406 return Event<void(A0, A1)>(
this,
mbed::callback(obj, method), c0, c1, c2, c3, c4);
3409 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename B4,
typename C0,
typename C1,
typename C2,
typename C3,
typename C4,
typename A0,
typename A1>
3410 Event<void(A0, A1)>
EventQueue::event(
const volatile T *obj, R(T::*method)(B0, B1, B2, B3, B4, A0, A1)
const volatile, C0 c0, C1 c1, C2 c2, C3 c3, C4 c4)
3412 return Event<void(A0, A1)>(
this,
mbed::callback(obj, method), c0, c1, c2, c3, c4);
3415 template <
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename B4,
typename C0,
typename C1,
typename C2,
typename C3,
typename C4,
typename A0,
typename A1>
3416 Event<void(A0, A1)>
EventQueue::event(
mbed::Callback<R(B0, B1, B2, B3, B4, A0, A1)> cb, C0 c0, C1 c1, C2 c2, C3 c3, C4 c4)
3418 return Event<void(A0, A1)>(
this, cb, c0, c1, c2, c3, c4);
3421 template <
typename R,
typename A0,
typename A1,
typename A2>
3424 return Event<void(A0, A1, A2)>(
this, func);
3427 template <
typename T,
typename R,
typename A0,
typename A1,
typename A2>
3430 return Event<void(A0, A1, A2)>(
this,
mbed::callback(obj, method));
3433 template <
typename T,
typename R,
typename A0,
typename A1,
typename A2>
3434 Event<void(A0, A1, A2)>
EventQueue::event(
const T *obj, R(T::*method)(A0, A1, A2)
const)
3436 return Event<void(A0, A1, A2)>(
this,
mbed::callback(obj, method));
3439 template <
typename T,
typename R,
typename A0,
typename A1,
typename A2>
3440 Event<void(A0, A1, A2)>
EventQueue::event(
volatile T *obj, R(T::*method)(A0, A1, A2)
volatile)
3442 return Event<void(A0, A1, A2)>(
this,
mbed::callback(obj, method));
3445 template <
typename T,
typename R,
typename A0,
typename A1,
typename A2>
3446 Event<void(A0, A1, A2)>
EventQueue::event(
const volatile T *obj, R(T::*method)(A0, A1, A2)
const volatile)
3448 return Event<void(A0, A1, A2)>(
this,
mbed::callback(obj, method));
3451 template <
typename R,
typename A0,
typename A1,
typename A2>
3454 return Event<void(A0, A1, A2)>(
this, cb);
3457 template <
typename R,
typename B0,
typename C0,
typename A0,
typename A1,
typename A2>
3460 return Event<void(A0, A1, A2)>(
this, func, c0);
3463 template <
typename T,
typename R,
typename B0,
typename C0,
typename A0,
typename A1,
typename A2>
3464 Event<void(A0, A1, A2)>
EventQueue::event(T *obj, R(T::*method)(B0, A0, A1, A2), C0 c0)
3466 return Event<void(A0, A1, A2)>(
this,
mbed::callback(obj, method), c0);
3469 template <
typename T,
typename R,
typename B0,
typename C0,
typename A0,
typename A1,
typename A2>
3470 Event<void(A0, A1, A2)>
EventQueue::event(
const T *obj, R(T::*method)(B0, A0, A1, A2)
const, C0 c0)
3472 return Event<void(A0, A1, A2)>(
this,
mbed::callback(obj, method), c0);
3475 template <
typename T,
typename R,
typename B0,
typename C0,
typename A0,
typename A1,
typename A2>
3476 Event<void(A0, A1, A2)>
EventQueue::event(
volatile T *obj, R(T::*method)(B0, A0, A1, A2)
volatile, C0 c0)
3478 return Event<void(A0, A1, A2)>(
this,
mbed::callback(obj, method), c0);
3481 template <
typename T,
typename R,
typename B0,
typename C0,
typename A0,
typename A1,
typename A2>
3482 Event<void(A0, A1, A2)>
EventQueue::event(
const volatile T *obj, R(T::*method)(B0, A0, A1, A2)
const volatile, C0 c0)
3484 return Event<void(A0, A1, A2)>(
this,
mbed::callback(obj, method), c0);
3487 template <
typename R,
typename B0,
typename C0,
typename A0,
typename A1,
typename A2>
3490 return Event<void(A0, A1, A2)>(
this, cb, c0);
3493 template <
typename R,
typename B0,
typename B1,
typename C0,
typename C1,
typename A0,
typename A1,
typename A2>
3494 Event<void(A0, A1, A2)>
EventQueue::event(R(*func)(B0, B1, A0, A1, A2), C0 c0, C1 c1)
3496 return Event<void(A0, A1, A2)>(
this, func, c0, c1);
3499 template <
typename T,
typename R,
typename B0,
typename B1,
typename C0,
typename C1,
typename A0,
typename A1,
typename A2>
3500 Event<void(A0, A1, A2)>
EventQueue::event(T *obj, R(T::*method)(B0, B1, A0, A1, A2), C0 c0, C1 c1)
3502 return Event<void(A0, A1, A2)>(
this,
mbed::callback(obj, method), c0, c1);
3505 template <
typename T,
typename R,
typename B0,
typename B1,
typename C0,
typename C1,
typename A0,
typename A1,
typename A2>
3506 Event<void(A0, A1, A2)>
EventQueue::event(
const T *obj, R(T::*method)(B0, B1, A0, A1, A2)
const, C0 c0, C1 c1)
3508 return Event<void(A0, A1, A2)>(
this,
mbed::callback(obj, method), c0, c1);
3511 template <
typename T,
typename R,
typename B0,
typename B1,
typename C0,
typename C1,
typename A0,
typename A1,
typename A2>
3512 Event<void(A0, A1, A2)>
EventQueue::event(
volatile T *obj, R(T::*method)(B0, B1, A0, A1, A2)
volatile, C0 c0, C1 c1)
3514 return Event<void(A0, A1, A2)>(
this,
mbed::callback(obj, method), c0, c1);
3517 template <
typename T,
typename R,
typename B0,
typename B1,
typename C0,
typename C1,
typename A0,
typename A1,
typename A2>
3518 Event<void(A0, A1, A2)>
EventQueue::event(
const volatile T *obj, R(T::*method)(B0, B1, A0, A1, A2)
const volatile, C0 c0, C1 c1)
3520 return Event<void(A0, A1, A2)>(
this,
mbed::callback(obj, method), c0, c1);
3523 template <
typename R,
typename B0,
typename B1,
typename C0,
typename C1,
typename A0,
typename A1,
typename A2>
3526 return Event<void(A0, A1, A2)>(
this, cb, c0, c1);
3529 template <
typename R,
typename B0,
typename B1,
typename B2,
typename C0,
typename C1,
typename C2,
typename A0,
typename A1,
typename A2>
3530 Event<void(A0, A1, A2)>
EventQueue::event(R(*func)(B0, B1, B2, A0, A1, A2), C0 c0, C1 c1, C2 c2)
3532 return Event<void(A0, A1, A2)>(
this, func, c0, c1, c2);
3535 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename C0,
typename C1,
typename C2,
typename A0,
typename A1,
typename A2>
3536 Event<void(A0, A1, A2)>
EventQueue::event(T *obj, R(T::*method)(B0, B1, B2, A0, A1, A2), C0 c0, C1 c1, C2 c2)
3538 return Event<void(A0, A1, A2)>(
this,
mbed::callback(obj, method), c0, c1, c2);
3541 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename C0,
typename C1,
typename C2,
typename A0,
typename A1,
typename A2>
3542 Event<void(A0, A1, A2)>
EventQueue::event(
const T *obj, R(T::*method)(B0, B1, B2, A0, A1, A2)
const, C0 c0, C1 c1, C2 c2)
3544 return Event<void(A0, A1, A2)>(
this,
mbed::callback(obj, method), c0, c1, c2);
3547 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename C0,
typename C1,
typename C2,
typename A0,
typename A1,
typename A2>
3548 Event<void(A0, A1, A2)>
EventQueue::event(
volatile T *obj, R(T::*method)(B0, B1, B2, A0, A1, A2)
volatile, C0 c0, C1 c1, C2 c2)
3550 return Event<void(A0, A1, A2)>(
this,
mbed::callback(obj, method), c0, c1, c2);
3553 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename C0,
typename C1,
typename C2,
typename A0,
typename A1,
typename A2>
3554 Event<void(A0, A1, A2)>
EventQueue::event(
const volatile T *obj, R(T::*method)(B0, B1, B2, A0, A1, A2)
const volatile, C0 c0, C1 c1, C2 c2)
3556 return Event<void(A0, A1, A2)>(
this,
mbed::callback(obj, method), c0, c1, c2);
3559 template <
typename R,
typename B0,
typename B1,
typename B2,
typename C0,
typename C1,
typename C2,
typename A0,
typename A1,
typename A2>
3560 Event<void(A0, A1, A2)>
EventQueue::event(
mbed::Callback<R(B0, B1, B2, A0, A1, A2)> cb, C0 c0, C1 c1, C2 c2)
3562 return Event<void(A0, A1, A2)>(
this, cb, c0, c1, c2);
3565 template <
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename C0,
typename C1,
typename C2,
typename C3,
typename A0,
typename A1,
typename A2>
3566 Event<void(A0, A1, A2)>
EventQueue::event(R(*func)(B0, B1, B2, B3, A0, A1, A2), C0 c0, C1 c1, C2 c2, C3 c3)
3568 return Event<void(A0, A1, A2)>(
this, func, c0, c1, c2, c3);
3571 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename C0,
typename C1,
typename C2,
typename C3,
typename A0,
typename A1,
typename A2>
3572 Event<void(A0, A1, A2)>
EventQueue::event(T *obj, R(T::*method)(B0, B1, B2, B3, A0, A1, A2), C0 c0, C1 c1, C2 c2, C3 c3)
3574 return Event<void(A0, A1, A2)>(
this,
mbed::callback(obj, method), c0, c1, c2, c3);
3577 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename C0,
typename C1,
typename C2,
typename C3,
typename A0,
typename A1,
typename A2>
3578 Event<void(A0, A1, A2)>
EventQueue::event(
const T *obj, R(T::*method)(B0, B1, B2, B3, A0, A1, A2)
const, C0 c0, C1 c1, C2 c2, C3 c3)
3580 return Event<void(A0, A1, A2)>(
this,
mbed::callback(obj, method), c0, c1, c2, c3);
3583 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename C0,
typename C1,
typename C2,
typename C3,
typename A0,
typename A1,
typename A2>
3584 Event<void(A0, A1, A2)>
EventQueue::event(
volatile T *obj, R(T::*method)(B0, B1, B2, B3, A0, A1, A2)
volatile, C0 c0, C1 c1, C2 c2, C3 c3)
3586 return Event<void(A0, A1, A2)>(
this,
mbed::callback(obj, method), c0, c1, c2, c3);
3589 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename C0,
typename C1,
typename C2,
typename C3,
typename A0,
typename A1,
typename A2>
3590 Event<void(A0, A1, A2)>
EventQueue::event(
const volatile T *obj, R(T::*method)(B0, B1, B2, B3, A0, A1, A2)
const volatile, C0 c0, C1 c1, C2 c2, C3 c3)
3592 return Event<void(A0, A1, A2)>(
this,
mbed::callback(obj, method), c0, c1, c2, c3);
3595 template <
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename C0,
typename C1,
typename C2,
typename C3,
typename A0,
typename A1,
typename A2>
3596 Event<void(A0, A1, A2)>
EventQueue::event(
mbed::Callback<R(B0, B1, B2, B3, A0, A1, A2)> cb, C0 c0, C1 c1, C2 c2, C3 c3)
3598 return Event<void(A0, A1, A2)>(
this, cb, c0, c1, c2, c3);
3601 template <
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename B4,
typename C0,
typename C1,
typename C2,
typename C3,
typename C4,
typename A0,
typename A1,
typename A2>
3602 Event<void(A0, A1, A2)>
EventQueue::event(R(*func)(B0, B1, B2, B3, B4, A0, A1, A2), C0 c0, C1 c1, C2 c2, C3 c3, C4 c4)
3604 return Event<void(A0, A1, A2)>(
this, func, c0, c1, c2, c3, c4);
3607 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename B4,
typename C0,
typename C1,
typename C2,
typename C3,
typename C4,
typename A0,
typename A1,
typename A2>
3608 Event<void(A0, A1, A2)>
EventQueue::event(T *obj, R(T::*method)(B0, B1, B2, B3, B4, A0, A1, A2), C0 c0, C1 c1, C2 c2, C3 c3, C4 c4)
3610 return Event<void(A0, A1, A2)>(
this,
mbed::callback(obj, method), c0, c1, c2, c3, c4);
3613 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename B4,
typename C0,
typename C1,
typename C2,
typename C3,
typename C4,
typename A0,
typename A1,
typename A2>
3614 Event<void(A0, A1, A2)>
EventQueue::event(
const T *obj, R(T::*method)(B0, B1, B2, B3, B4, A0, A1, A2)
const, C0 c0, C1 c1, C2 c2, C3 c3, C4 c4)
3616 return Event<void(A0, A1, A2)>(
this,
mbed::callback(obj, method), c0, c1, c2, c3, c4);
3619 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename B4,
typename C0,
typename C1,
typename C2,
typename C3,
typename C4,
typename A0,
typename A1,
typename A2>
3620 Event<void(A0, A1, A2)>
EventQueue::event(
volatile T *obj, R(T::*method)(B0, B1, B2, B3, B4, A0, A1, A2)
volatile, C0 c0, C1 c1, C2 c2, C3 c3, C4 c4)
3622 return Event<void(A0, A1, A2)>(
this,
mbed::callback(obj, method), c0, c1, c2, c3, c4);
3625 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename B4,
typename C0,
typename C1,
typename C2,
typename C3,
typename C4,
typename A0,
typename A1,
typename A2>
3626 Event<void(A0, A1, A2)>
EventQueue::event(
const volatile T *obj, R(T::*method)(B0, B1, B2, B3, B4, A0, A1, A2)
const volatile, C0 c0, C1 c1, C2 c2, C3 c3, C4 c4)
3628 return Event<void(A0, A1, A2)>(
this,
mbed::callback(obj, method), c0, c1, c2, c3, c4);
3631 template <
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename B4,
typename C0,
typename C1,
typename C2,
typename C3,
typename C4,
typename A0,
typename A1,
typename A2>
3632 Event<void(A0, A1, A2)>
EventQueue::event(
mbed::Callback<R(B0, B1, B2, B3, B4, A0, A1, A2)> cb, C0 c0, C1 c1, C2 c2, C3 c3, C4 c4)
3634 return Event<void(A0, A1, A2)>(
this, cb, c0, c1, c2, c3, c4);
3637 template <
typename R,
typename A0,
typename A1,
typename A2,
typename A3>
3640 return Event<void(A0, A1, A2, A3)>(
this, func);
3643 template <
typename T,
typename R,
typename A0,
typename A1,
typename A2,
typename A3>
3644 Event<void(A0, A1, A2, A3)>
EventQueue::event(T *obj, R(T::*method)(A0, A1, A2, A3))
3646 return Event<void(A0, A1, A2, A3)>(
this,
mbed::callback(obj, method));
3649 template <
typename T,
typename R,
typename A0,
typename A1,
typename A2,
typename A3>
3650 Event<void(A0, A1, A2, A3)>
EventQueue::event(
const T *obj, R(T::*method)(A0, A1, A2, A3)
const)
3652 return Event<void(A0, A1, A2, A3)>(
this,
mbed::callback(obj, method));
3655 template <
typename T,
typename R,
typename A0,
typename A1,
typename A2,
typename A3>
3656 Event<void(A0, A1, A2, A3)>
EventQueue::event(
volatile T *obj, R(T::*method)(A0, A1, A2, A3)
volatile)
3658 return Event<void(A0, A1, A2, A3)>(
this,
mbed::callback(obj, method));
3661 template <
typename T,
typename R,
typename A0,
typename A1,
typename A2,
typename A3>
3662 Event<void(A0, A1, A2, A3)>
EventQueue::event(
const volatile T *obj, R(T::*method)(A0, A1, A2, A3)
const volatile)
3664 return Event<void(A0, A1, A2, A3)>(
this,
mbed::callback(obj, method));
3667 template <
typename R,
typename A0,
typename A1,
typename A2,
typename A3>
3670 return Event<void(A0, A1, A2, A3)>(
this, cb);
3673 template <
typename R,
typename B0,
typename C0,
typename A0,
typename A1,
typename A2,
typename A3>
3674 Event<void(A0, A1, A2, A3)>
EventQueue::event(R(*func)(B0, A0, A1, A2, A3), C0 c0)
3676 return Event<void(A0, A1, A2, A3)>(
this, func, c0);
3679 template <
typename T,
typename R,
typename B0,
typename C0,
typename A0,
typename A1,
typename A2,
typename A3>
3680 Event<void(A0, A1, A2, A3)>
EventQueue::event(T *obj, R(T::*method)(B0, A0, A1, A2, A3), C0 c0)
3682 return Event<void(A0, A1, A2, A3)>(
this,
mbed::callback(obj, method), c0);
3685 template <
typename T,
typename R,
typename B0,
typename C0,
typename A0,
typename A1,
typename A2,
typename A3>
3686 Event<void(A0, A1, A2, A3)>
EventQueue::event(
const T *obj, R(T::*method)(B0, A0, A1, A2, A3)
const, C0 c0)
3688 return Event<void(A0, A1, A2, A3)>(
this,
mbed::callback(obj, method), c0);
3691 template <
typename T,
typename R,
typename B0,
typename C0,
typename A0,
typename A1,
typename A2,
typename A3>
3692 Event<void(A0, A1, A2, A3)>
EventQueue::event(
volatile T *obj, R(T::*method)(B0, A0, A1, A2, A3)
volatile, C0 c0)
3694 return Event<void(A0, A1, A2, A3)>(
this,
mbed::callback(obj, method), c0);
3697 template <
typename T,
typename R,
typename B0,
typename C0,
typename A0,
typename A1,
typename A2,
typename A3>
3698 Event<void(A0, A1, A2, A3)>
EventQueue::event(
const volatile T *obj, R(T::*method)(B0, A0, A1, A2, A3)
const volatile, C0 c0)
3700 return Event<void(A0, A1, A2, A3)>(
this,
mbed::callback(obj, method), c0);
3703 template <
typename R,
typename B0,
typename C0,
typename A0,
typename A1,
typename A2,
typename A3>
3706 return Event<void(A0, A1, A2, A3)>(
this, cb, c0);
3709 template <
typename R,
typename B0,
typename B1,
typename C0,
typename C1,
typename A0,
typename A1,
typename A2,
typename A3>
3710 Event<void(A0, A1, A2, A3)>
EventQueue::event(R(*func)(B0, B1, A0, A1, A2, A3), C0 c0, C1 c1)
3712 return Event<void(A0, A1, A2, A3)>(
this, func, c0, c1);
3715 template <
typename T,
typename R,
typename B0,
typename B1,
typename C0,
typename C1,
typename A0,
typename A1,
typename A2,
typename A3>
3716 Event<void(A0, A1, A2, A3)>
EventQueue::event(T *obj, R(T::*method)(B0, B1, A0, A1, A2, A3), C0 c0, C1 c1)
3718 return Event<void(A0, A1, A2, A3)>(
this,
mbed::callback(obj, method), c0, c1);
3721 template <
typename T,
typename R,
typename B0,
typename B1,
typename C0,
typename C1,
typename A0,
typename A1,
typename A2,
typename A3>
3722 Event<void(A0, A1, A2, A3)>
EventQueue::event(
const T *obj, R(T::*method)(B0, B1, A0, A1, A2, A3)
const, C0 c0, C1 c1)
3724 return Event<void(A0, A1, A2, A3)>(
this,
mbed::callback(obj, method), c0, c1);
3727 template <
typename T,
typename R,
typename B0,
typename B1,
typename C0,
typename C1,
typename A0,
typename A1,
typename A2,
typename A3>
3728 Event<void(A0, A1, A2, A3)>
EventQueue::event(
volatile T *obj, R(T::*method)(B0, B1, A0, A1, A2, A3)
volatile, C0 c0, C1 c1)
3730 return Event<void(A0, A1, A2, A3)>(
this,
mbed::callback(obj, method), c0, c1);
3733 template <
typename T,
typename R,
typename B0,
typename B1,
typename C0,
typename C1,
typename A0,
typename A1,
typename A2,
typename A3>
3734 Event<void(A0, A1, A2, A3)>
EventQueue::event(
const volatile T *obj, R(T::*method)(B0, B1, A0, A1, A2, A3)
const volatile, C0 c0, C1 c1)
3736 return Event<void(A0, A1, A2, A3)>(
this,
mbed::callback(obj, method), c0, c1);
3739 template <
typename R,
typename B0,
typename B1,
typename C0,
typename C1,
typename A0,
typename A1,
typename A2,
typename A3>
3740 Event<void(A0, A1, A2, A3)>
EventQueue::event(
mbed::Callback<R(B0, B1, A0, A1, A2, A3)> cb, C0 c0, C1 c1)
3742 return Event<void(A0, A1, A2, A3)>(
this, cb, c0, c1);
3745 template <
typename R,
typename B0,
typename B1,
typename B2,
typename C0,
typename C1,
typename C2,
typename A0,
typename A1,
typename A2,
typename A3>
3746 Event<void(A0, A1, A2, A3)>
EventQueue::event(R(*func)(B0, B1, B2, A0, A1, A2, A3), C0 c0, C1 c1, C2 c2)
3748 return Event<void(A0, A1, A2, A3)>(
this, func, c0, c1, c2);
3751 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename C0,
typename C1,
typename C2,
typename A0,
typename A1,
typename A2,
typename A3>
3752 Event<void(A0, A1, A2, A3)>
EventQueue::event(T *obj, R(T::*method)(B0, B1, B2, A0, A1, A2, A3), C0 c0, C1 c1, C2 c2)
3754 return Event<void(A0, A1, A2, A3)>(
this,
mbed::callback(obj, method), c0, c1, c2);
3757 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename C0,
typename C1,
typename C2,
typename A0,
typename A1,
typename A2,
typename A3>
3758 Event<void(A0, A1, A2, A3)>
EventQueue::event(
const T *obj, R(T::*method)(B0, B1, B2, A0, A1, A2, A3)
const, C0 c0, C1 c1, C2 c2)
3760 return Event<void(A0, A1, A2, A3)>(
this,
mbed::callback(obj, method), c0, c1, c2);
3763 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename C0,
typename C1,
typename C2,
typename A0,
typename A1,
typename A2,
typename A3>
3764 Event<void(A0, A1, A2, A3)>
EventQueue::event(
volatile T *obj, R(T::*method)(B0, B1, B2, A0, A1, A2, A3)
volatile, C0 c0, C1 c1, C2 c2)
3766 return Event<void(A0, A1, A2, A3)>(
this,
mbed::callback(obj, method), c0, c1, c2);
3769 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename C0,
typename C1,
typename C2,
typename A0,
typename A1,
typename A2,
typename A3>
3770 Event<void(A0, A1, A2, A3)>
EventQueue::event(
const volatile T *obj, R(T::*method)(B0, B1, B2, A0, A1, A2, A3)
const volatile, C0 c0, C1 c1, C2 c2)
3772 return Event<void(A0, A1, A2, A3)>(
this,
mbed::callback(obj, method), c0, c1, c2);
3775 template <
typename R,
typename B0,
typename B1,
typename B2,
typename C0,
typename C1,
typename C2,
typename A0,
typename A1,
typename A2,
typename A3>
3776 Event<void(A0, A1, A2, A3)>
EventQueue::event(
mbed::Callback<R(B0, B1, B2, A0, A1, A2, A3)> cb, C0 c0, C1 c1, C2 c2)
3778 return Event<void(A0, A1, A2, A3)>(
this, cb, c0, c1, c2);
3781 template <
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename C0,
typename C1,
typename C2,
typename C3,
typename A0,
typename A1,
typename A2,
typename A3>
3782 Event<void(A0, A1, A2, A3)>
EventQueue::event(R(*func)(B0, B1, B2, B3, A0, A1, A2, A3), C0 c0, C1 c1, C2 c2, C3 c3)
3784 return Event<void(A0, A1, A2, A3)>(
this, func, c0, c1, c2, c3);
3787 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename C0,
typename C1,
typename C2,
typename C3,
typename A0,
typename A1,
typename A2,
typename A3>
3788 Event<void(A0, A1, A2, A3)>
EventQueue::event(T *obj, R(T::*method)(B0, B1, B2, B3, A0, A1, A2, A3), C0 c0, C1 c1, C2 c2, C3 c3)
3790 return Event<void(A0, A1, A2, A3)>(
this,
mbed::callback(obj, method), c0, c1, c2, c3);
3793 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename C0,
typename C1,
typename C2,
typename C3,
typename A0,
typename A1,
typename A2,
typename A3>
3794 Event<void(A0, A1, A2, A3)>
EventQueue::event(
const T *obj, R(T::*method)(B0, B1, B2, B3, A0, A1, A2, A3)
const, C0 c0, C1 c1, C2 c2, C3 c3)
3796 return Event<void(A0, A1, A2, A3)>(
this,
mbed::callback(obj, method), c0, c1, c2, c3);
3799 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename C0,
typename C1,
typename C2,
typename C3,
typename A0,
typename A1,
typename A2,
typename A3>
3800 Event<void(A0, A1, A2, A3)>
EventQueue::event(
volatile T *obj, R(T::*method)(B0, B1, B2, B3, A0, A1, A2, A3)
volatile, C0 c0, C1 c1, C2 c2, C3 c3)
3802 return Event<void(A0, A1, A2, A3)>(
this,
mbed::callback(obj, method), c0, c1, c2, c3);
3805 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename C0,
typename C1,
typename C2,
typename C3,
typename A0,
typename A1,
typename A2,
typename A3>
3806 Event<void(A0, A1, A2, A3)>
EventQueue::event(
const volatile T *obj, R(T::*method)(B0, B1, B2, B3, A0, A1, A2, A3)
const volatile, C0 c0, C1 c1, C2 c2, C3 c3)
3808 return Event<void(A0, A1, A2, A3)>(
this,
mbed::callback(obj, method), c0, c1, c2, c3);
3811 template <
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename C0,
typename C1,
typename C2,
typename C3,
typename A0,
typename A1,
typename A2,
typename A3>
3812 Event<void(A0, A1, A2, A3)>
EventQueue::event(
mbed::Callback<R(B0, B1, B2, B3, A0, A1, A2, A3)> cb, C0 c0, C1 c1, C2 c2, C3 c3)
3814 return Event<void(A0, A1, A2, A3)>(
this, cb, c0, c1, c2, c3);
3817 template <
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename B4,
typename C0,
typename C1,
typename C2,
typename C3,
typename C4,
typename A0,
typename A1,
typename A2,
typename A3>
3818 Event<void(A0, A1, A2, A3)>
EventQueue::event(R(*func)(B0, B1, B2, B3, B4, A0, A1, A2, A3), C0 c0, C1 c1, C2 c2, C3 c3, C4 c4)
3820 return Event<void(A0, A1, A2, A3)>(
this, func, c0, c1, c2, c3, c4);
3823 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename B4,
typename C0,
typename C1,
typename C2,
typename C3,
typename C4,
typename A0,
typename A1,
typename A2,
typename A3>
3824 Event<void(A0, A1, A2, A3)>
EventQueue::event(T *obj, R(T::*method)(B0, B1, B2, B3, B4, A0, A1, A2, A3), C0 c0, C1 c1, C2 c2, C3 c3, C4 c4)
3826 return Event<void(A0, A1, A2, A3)>(
this,
mbed::callback(obj, method), c0, c1, c2, c3, c4);
3829 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename B4,
typename C0,
typename C1,
typename C2,
typename C3,
typename C4,
typename A0,
typename A1,
typename A2,
typename A3>
3830 Event<void(A0, A1, A2, A3)>
EventQueue::event(
const T *obj, R(T::*method)(B0, B1, B2, B3, B4, A0, A1, A2, A3)
const, C0 c0, C1 c1, C2 c2, C3 c3, C4 c4)
3832 return Event<void(A0, A1, A2, A3)>(
this,
mbed::callback(obj, method), c0, c1, c2, c3, c4);
3835 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename B4,
typename C0,
typename C1,
typename C2,
typename C3,
typename C4,
typename A0,
typename A1,
typename A2,
typename A3>
3836 Event<void(A0, A1, A2, A3)>
EventQueue::event(
volatile T *obj, R(T::*method)(B0, B1, B2, B3, B4, A0, A1, A2, A3)
volatile, C0 c0, C1 c1, C2 c2, C3 c3, C4 c4)
3838 return Event<void(A0, A1, A2, A3)>(
this,
mbed::callback(obj, method), c0, c1, c2, c3, c4);
3841 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename B4,
typename C0,
typename C1,
typename C2,
typename C3,
typename C4,
typename A0,
typename A1,
typename A2,
typename A3>
3842 Event<void(A0, A1, A2, A3)>
EventQueue::event(
const volatile T *obj, R(T::*method)(B0, B1, B2, B3, B4, A0, A1, A2, A3)
const volatile, C0 c0, C1 c1, C2 c2, C3 c3, C4 c4)
3844 return Event<void(A0, A1, A2, A3)>(
this,
mbed::callback(obj, method), c0, c1, c2, c3, c4);
3847 template <
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename B4,
typename C0,
typename C1,
typename C2,
typename C3,
typename C4,
typename A0,
typename A1,
typename A2,
typename A3>
3848 Event<void(A0, A1, A2, A3)>
EventQueue::event(
mbed::Callback<R(B0, B1, B2, B3, B4, A0, A1, A2, A3)> cb, C0 c0, C1 c1, C2 c2, C3 c3, C4 c4)
3850 return Event<void(A0, A1, A2, A3)>(
this, cb, c0, c1, c2, c3, c4);
3853 template <
typename R,
typename A0,
typename A1,
typename A2,
typename A3,
typename A4>
3856 return Event<void(A0, A1, A2, A3, A4)>(
this, func);
3859 template <
typename T,
typename R,
typename A0,
typename A1,
typename A2,
typename A3,
typename A4>
3860 Event<void(A0, A1, A2, A3, A4)>
EventQueue::event(T *obj, R(T::*method)(A0, A1, A2, A3, A4))
3862 return Event<void(A0, A1, A2, A3, A4)>(
this,
mbed::callback(obj, method));
3865 template <
typename T,
typename R,
typename A0,
typename A1,
typename A2,
typename A3,
typename A4>
3866 Event<void(A0, A1, A2, A3, A4)>
EventQueue::event(
const T *obj, R(T::*method)(A0, A1, A2, A3, A4)
const)
3868 return Event<void(A0, A1, A2, A3, A4)>(
this,
mbed::callback(obj, method));
3871 template <
typename T,
typename R,
typename A0,
typename A1,
typename A2,
typename A3,
typename A4>
3872 Event<void(A0, A1, A2, A3, A4)>
EventQueue::event(
volatile T *obj, R(T::*method)(A0, A1, A2, A3, A4)
volatile)
3874 return Event<void(A0, A1, A2, A3, A4)>(
this,
mbed::callback(obj, method));
3877 template <
typename T,
typename R,
typename A0,
typename A1,
typename A2,
typename A3,
typename A4>
3878 Event<void(A0, A1, A2, A3, A4)>
EventQueue::event(
const volatile T *obj, R(T::*method)(A0, A1, A2, A3, A4)
const volatile)
3880 return Event<void(A0, A1, A2, A3, A4)>(
this,
mbed::callback(obj, method));
3883 template <
typename R,
typename A0,
typename A1,
typename A2,
typename A3,
typename A4>
3886 return Event<void(A0, A1, A2, A3, A4)>(
this, cb);
3889 template <
typename R,
typename B0,
typename C0,
typename A0,
typename A1,
typename A2,
typename A3,
typename A4>
3890 Event<void(A0, A1, A2, A3, A4)>
EventQueue::event(R(*func)(B0, A0, A1, A2, A3, A4), C0 c0)
3892 return Event<void(A0, A1, A2, A3, A4)>(
this, func, c0);
3895 template <
typename T,
typename R,
typename B0,
typename C0,
typename A0,
typename A1,
typename A2,
typename A3,
typename A4>
3896 Event<void(A0, A1, A2, A3, A4)>
EventQueue::event(T *obj, R(T::*method)(B0, A0, A1, A2, A3, A4), C0 c0)
3898 return Event<void(A0, A1, A2, A3, A4)>(
this,
mbed::callback(obj, method), c0);
3901 template <
typename T,
typename R,
typename B0,
typename C0,
typename A0,
typename A1,
typename A2,
typename A3,
typename A4>
3902 Event<void(A0, A1, A2, A3, A4)>
EventQueue::event(
const T *obj, R(T::*method)(B0, A0, A1, A2, A3, A4)
const, C0 c0)
3904 return Event<void(A0, A1, A2, A3, A4)>(
this,
mbed::callback(obj, method), c0);
3907 template <
typename T,
typename R,
typename B0,
typename C0,
typename A0,
typename A1,
typename A2,
typename A3,
typename A4>
3908 Event<void(A0, A1, A2, A3, A4)>
EventQueue::event(
volatile T *obj, R(T::*method)(B0, A0, A1, A2, A3, A4)
volatile, C0 c0)
3910 return Event<void(A0, A1, A2, A3, A4)>(
this,
mbed::callback(obj, method), c0);
3913 template <
typename T,
typename R,
typename B0,
typename C0,
typename A0,
typename A1,
typename A2,
typename A3,
typename A4>
3914 Event<void(A0, A1, A2, A3, A4)>
EventQueue::event(
const volatile T *obj, R(T::*method)(B0, A0, A1, A2, A3, A4)
const volatile, C0 c0)
3916 return Event<void(A0, A1, A2, A3, A4)>(
this,
mbed::callback(obj, method), c0);
3919 template <
typename R,
typename B0,
typename C0,
typename A0,
typename A1,
typename A2,
typename A3,
typename A4>
3920 Event<void(A0, A1, A2, A3, A4)>
EventQueue::event(
mbed::Callback<R(B0, A0, A1, A2, A3, A4)> cb, C0 c0)
3922 return Event<void(A0, A1, A2, A3, A4)>(
this, cb, c0);
3925 template <
typename R,
typename B0,
typename B1,
typename C0,
typename C1,
typename A0,
typename A1,
typename A2,
typename A3,
typename A4>
3926 Event<void(A0, A1, A2, A3, A4)>
EventQueue::event(R(*func)(B0, B1, A0, A1, A2, A3, A4), C0 c0, C1 c1)
3928 return Event<void(A0, A1, A2, A3, A4)>(
this, func, c0, c1);
3931 template <
typename T,
typename R,
typename B0,
typename B1,
typename C0,
typename C1,
typename A0,
typename A1,
typename A2,
typename A3,
typename A4>
3932 Event<void(A0, A1, A2, A3, A4)>
EventQueue::event(T *obj, R(T::*method)(B0, B1, A0, A1, A2, A3, A4), C0 c0, C1 c1)
3934 return Event<void(A0, A1, A2, A3, A4)>(
this,
mbed::callback(obj, method), c0, c1);
3937 template <
typename T,
typename R,
typename B0,
typename B1,
typename C0,
typename C1,
typename A0,
typename A1,
typename A2,
typename A3,
typename A4>
3938 Event<void(A0, A1, A2, A3, A4)>
EventQueue::event(
const T *obj, R(T::*method)(B0, B1, A0, A1, A2, A3, A4)
const, C0 c0, C1 c1)
3940 return Event<void(A0, A1, A2, A3, A4)>(
this,
mbed::callback(obj, method), c0, c1);
3943 template <
typename T,
typename R,
typename B0,
typename B1,
typename C0,
typename C1,
typename A0,
typename A1,
typename A2,
typename A3,
typename A4>
3944 Event<void(A0, A1, A2, A3, A4)>
EventQueue::event(
volatile T *obj, R(T::*method)(B0, B1, A0, A1, A2, A3, A4)
volatile, C0 c0, C1 c1)
3946 return Event<void(A0, A1, A2, A3, A4)>(
this,
mbed::callback(obj, method), c0, c1);
3949 template <
typename T,
typename R,
typename B0,
typename B1,
typename C0,
typename C1,
typename A0,
typename A1,
typename A2,
typename A3,
typename A4>
3950 Event<void(A0, A1, A2, A3, A4)>
EventQueue::event(
const volatile T *obj, R(T::*method)(B0, B1, A0, A1, A2, A3, A4)
const volatile, C0 c0, C1 c1)
3952 return Event<void(A0, A1, A2, A3, A4)>(
this,
mbed::callback(obj, method), c0, c1);
3955 template <
typename R,
typename B0,
typename B1,
typename C0,
typename C1,
typename A0,
typename A1,
typename A2,
typename A3,
typename A4>
3956 Event<void(A0, A1, A2, A3, A4)>
EventQueue::event(
mbed::Callback<R(B0, B1, A0, A1, A2, A3, A4)> cb, C0 c0, C1 c1)
3958 return Event<void(A0, A1, A2, A3, A4)>(
this, cb, c0, c1);
3961 template <
typename R,
typename B0,
typename B1,
typename B2,
typename C0,
typename C1,
typename C2,
typename A0,
typename A1,
typename A2,
typename A3,
typename A4>
3962 Event<void(A0, A1, A2, A3, A4)>
EventQueue::event(R(*func)(B0, B1, B2, A0, A1, A2, A3, A4), C0 c0, C1 c1, C2 c2)
3964 return Event<void(A0, A1, A2, A3, A4)>(
this, func, c0, c1, c2);
3967 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename C0,
typename C1,
typename C2,
typename A0,
typename A1,
typename A2,
typename A3,
typename A4>
3968 Event<void(A0, A1, A2, A3, A4)>
EventQueue::event(T *obj, R(T::*method)(B0, B1, B2, A0, A1, A2, A3, A4), C0 c0, C1 c1, C2 c2)
3970 return Event<void(A0, A1, A2, A3, A4)>(
this,
mbed::callback(obj, method), c0, c1, c2);
3973 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename C0,
typename C1,
typename C2,
typename A0,
typename A1,
typename A2,
typename A3,
typename A4>
3974 Event<void(A0, A1, A2, A3, A4)>
EventQueue::event(
const T *obj, R(T::*method)(B0, B1, B2, A0, A1, A2, A3, A4)
const, C0 c0, C1 c1, C2 c2)
3976 return Event<void(A0, A1, A2, A3, A4)>(
this,
mbed::callback(obj, method), c0, c1, c2);
3979 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename C0,
typename C1,
typename C2,
typename A0,
typename A1,
typename A2,
typename A3,
typename A4>
3980 Event<void(A0, A1, A2, A3, A4)>
EventQueue::event(
volatile T *obj, R(T::*method)(B0, B1, B2, A0, A1, A2, A3, A4)
volatile, C0 c0, C1 c1, C2 c2)
3982 return Event<void(A0, A1, A2, A3, A4)>(
this,
mbed::callback(obj, method), c0, c1, c2);
3985 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename C0,
typename C1,
typename C2,
typename A0,
typename A1,
typename A2,
typename A3,
typename A4>
3986 Event<void(A0, A1, A2, A3, A4)>
EventQueue::event(
const volatile T *obj, R(T::*method)(B0, B1, B2, A0, A1, A2, A3, A4)
const volatile, C0 c0, C1 c1, C2 c2)
3988 return Event<void(A0, A1, A2, A3, A4)>(
this,
mbed::callback(obj, method), c0, c1, c2);
3991 template <
typename R,
typename B0,
typename B1,
typename B2,
typename C0,
typename C1,
typename C2,
typename A0,
typename A1,
typename A2,
typename A3,
typename A4>
3992 Event<void(A0, A1, A2, A3, A4)>
EventQueue::event(
mbed::Callback<R(B0, B1, B2, A0, A1, A2, A3, A4)> cb, C0 c0, C1 c1, C2 c2)
3994 return Event<void(A0, A1, A2, A3, A4)>(
this, cb, c0, c1, c2);
3997 template <
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename C0,
typename C1,
typename C2,
typename C3,
typename A0,
typename A1,
typename A2,
typename A3,
typename A4>
3998 Event<void(A0, A1, A2, A3, A4)>
EventQueue::event(R(*func)(B0, B1, B2, B3, A0, A1, A2, A3, A4), C0 c0, C1 c1, C2 c2, C3 c3)
4000 return Event<void(A0, A1, A2, A3, A4)>(
this, func, c0, c1, c2, c3);
4003 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename C0,
typename C1,
typename C2,
typename C3,
typename A0,
typename A1,
typename A2,
typename A3,
typename A4>
4004 Event<void(A0, A1, A2, A3, A4)>
EventQueue::event(T *obj, R(T::*method)(B0, B1, B2, B3, A0, A1, A2, A3, A4), C0 c0, C1 c1, C2 c2, C3 c3)
4006 return Event<void(A0, A1, A2, A3, A4)>(
this,
mbed::callback(obj, method), c0, c1, c2, c3);
4009 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename C0,
typename C1,
typename C2,
typename C3,
typename A0,
typename A1,
typename A2,
typename A3,
typename A4>
4010 Event<void(A0, A1, A2, A3, A4)>
EventQueue::event(
const T *obj, R(T::*method)(B0, B1, B2, B3, A0, A1, A2, A3, A4)
const, C0 c0, C1 c1, C2 c2, C3 c3)
4012 return Event<void(A0, A1, A2, A3, A4)>(
this,
mbed::callback(obj, method), c0, c1, c2, c3);
4015 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename C0,
typename C1,
typename C2,
typename C3,
typename A0,
typename A1,
typename A2,
typename A3,
typename A4>
4016 Event<void(A0, A1, A2, A3, A4)>
EventQueue::event(
volatile T *obj, R(T::*method)(B0, B1, B2, B3, A0, A1, A2, A3, A4)
volatile, C0 c0, C1 c1, C2 c2, C3 c3)
4018 return Event<void(A0, A1, A2, A3, A4)>(
this,
mbed::callback(obj, method), c0, c1, c2, c3);
4021 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename C0,
typename C1,
typename C2,
typename C3,
typename A0,
typename A1,
typename A2,
typename A3,
typename A4>
4022 Event<void(A0, A1, A2, A3, A4)>
EventQueue::event(
const volatile T *obj, R(T::*method)(B0, B1, B2, B3, A0, A1, A2, A3, A4)
const volatile, C0 c0, C1 c1, C2 c2, C3 c3)
4024 return Event<void(A0, A1, A2, A3, A4)>(
this,
mbed::callback(obj, method), c0, c1, c2, c3);
4027 template <
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename C0,
typename C1,
typename C2,
typename C3,
typename A0,
typename A1,
typename A2,
typename A3,
typename A4>
4028 Event<void(A0, A1, A2, A3, A4)>
EventQueue::event(
mbed::Callback<R(B0, B1, B2, B3, A0, A1, A2, A3, A4)> cb, C0 c0, C1 c1, C2 c2, C3 c3)
4030 return Event<void(A0, A1, A2, A3, A4)>(
this, cb, c0, c1, c2, c3);
4033 template <
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename B4,
typename C0,
typename C1,
typename C2,
typename C3,
typename C4,
typename A0,
typename A1,
typename A2,
typename A3,
typename A4>
4034 Event<void(A0, A1, A2, A3, A4)>
EventQueue::event(R(*func)(B0, B1, B2, B3, B4, A0, A1, A2, A3, A4), C0 c0, C1 c1, C2 c2, C3 c3, C4 c4)
4036 return Event<void(A0, A1, A2, A3, A4)>(
this, func, c0, c1, c2, c3, c4);
4039 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename B4,
typename C0,
typename C1,
typename C2,
typename C3,
typename C4,
typename A0,
typename A1,
typename A2,
typename A3,
typename A4>
4040 Event<void(A0, A1, A2, A3, A4)>
EventQueue::event(T *obj, R(T::*method)(B0, B1, B2, B3, B4, A0, A1, A2, A3, A4), C0 c0, C1 c1, C2 c2, C3 c3, C4 c4)
4042 return Event<void(A0, A1, A2, A3, A4)>(
this,
mbed::callback(obj, method), c0, c1, c2, c3, c4);
4045 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename B4,
typename C0,
typename C1,
typename C2,
typename C3,
typename C4,
typename A0,
typename A1,
typename A2,
typename A3,
typename A4>
4046 Event<void(A0, A1, A2, A3, A4)>
EventQueue::event(
const T *obj, R(T::*method)(B0, B1, B2, B3, B4, A0, A1, A2, A3, A4)
const, C0 c0, C1 c1, C2 c2, C3 c3, C4 c4)
4048 return Event<void(A0, A1, A2, A3, A4)>(
this,
mbed::callback(obj, method), c0, c1, c2, c3, c4);
4051 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename B4,
typename C0,
typename C1,
typename C2,
typename C3,
typename C4,
typename A0,
typename A1,
typename A2,
typename A3,
typename A4>
4052 Event<void(A0, A1, A2, A3, A4)>
EventQueue::event(
volatile T *obj, R(T::*method)(B0, B1, B2, B3, B4, A0, A1, A2, A3, A4)
volatile, C0 c0, C1 c1, C2 c2, C3 c3, C4 c4)
4054 return Event<void(A0, A1, A2, A3, A4)>(
this,
mbed::callback(obj, method), c0, c1, c2, c3, c4);
4057 template <
typename T,
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename B4,
typename C0,
typename C1,
typename C2,
typename C3,
typename C4,
typename A0,
typename A1,
typename A2,
typename A3,
typename A4>
4058 Event<void(A0, A1, A2, A3, A4)>
EventQueue::event(
const volatile T *obj, R(T::*method)(B0, B1, B2, B3, B4, A0, A1, A2, A3, A4)
const volatile, C0 c0, C1 c1, C2 c2, C3 c3, C4 c4)
4060 return Event<void(A0, A1, A2, A3, A4)>(
this,
mbed::callback(obj, method), c0, c1, c2, c3, c4);
4063 template <
typename R,
typename B0,
typename B1,
typename B2,
typename B3,
typename B4,
typename C0,
typename C1,
typename C2,
typename C3,
typename C4,
typename A0,
typename A1,
typename A2,
typename A3,
typename A4>
4064 Event<void(A0, A1, A2, A3, A4)>
EventQueue::event(
mbed::Callback<R(B0, B1, B2, B3, B4, A0, A1, A2, A3, A4)> cb, C0 c0, C1 c1, C2 c2, C3 c3, C4 c4)
4066 return Event<void(A0, A1, A2, A3, A4)>(
this, cb, c0, c1, c2, c3, c4);
Event< void(Args...)> event(R(*func)(BoundArgs...), Args...args)
Creates an event bound to the event queue.
Callback class based on template specialization.