WvStreams
|
A WvCallback wrapper that delays until the next tick of the WvIStreamList main loop. More...
#include <wvdelayedcallback.h>
Public Member Functions | |
WvDelayedCallback (const Functor &_func) | |
WvDelayedCallback (const WvDelayedCallback &other) | |
void | operator() () |
template<typename P1 > | |
void | operator() (P1 &p1) |
template<typename P1 , typename P2 > | |
void | operator() (P1 &p1, P2 &p2) |
template<typename P1 , typename P2 , typename P3 > | |
void | operator() (P1 &p1, P2 &p2, P3 &p3) |
template<typename P1 , typename P2 , typename P3 , typename P4 > | |
void | operator() (P1 &p1, P2 &p2, P3 &p3, P4 &p4) |
template<typename P1 , typename P2 , typename P3 , typename P4 , typename P5 > | |
void | operator() (P1 &p1, P2 &p2, P3 &p3, P4 &p4, P5 &p5) |
template<typename P1 , typename P2 , typename P3 , typename P4 , typename P5 , typename P6 > | |
void | operator() (P1 &p1, P2 &p2, P3 &p3, P4 &p4, P5 &p5, P6 &p6) |
template<typename P1 , typename P2 , typename P3 , typename P4 , typename P5 , typename P6 , typename P7 > | |
void | operator() (P1 &p1, P2 &p2, P3 &p3, P4 &p4, P5 &p5, P6 &p6, P7 &p7) |
template<typename P1 , typename P2 , typename P3 , typename P4 , typename P5 , typename P6 , typename P7 , typename P8 > | |
void | operator() (P1 &p1, P2 &p2, P3 &p3, P4 &p4, P5 &p5, P6 &p6, P7 &p7, P8 &p8) |
A WvCallback wrapper that delays until the next tick of the WvIStreamList main loop.
There are restrictions on the type of the wrapped callback though: 1. The return type must be void 2. All parameter types must be copy-constructible value types
Example: setcallback(wv::delayed(mycallback));
FIXME: Because operator() makes a copy of the inner callback and thaw() destroys the copy, nesting WvDelayedCallback doesn't work as you might expect. That is, don't do: wv::delayed(wv::delayed(mycallback)). It creates a copy of the inner WvDelayedCallback, but that copy gets frozen, then destroyed before it has a chance to thaw! Anyway, it's a stupid thing to do anyway, so don't.
Definition at line 30 of file wvdelayedcallback.h.