1 #############################################################################
3 #############################################################################
8 HV *stash = gv_stashpv ("IOM_CLASS", 1);
9 SV *baseclass = newSVpv ("IOM_CLASS::watcher", 0);
14 } *civ, iom_const_iv[] = {
15 # define iom_const_iv(name) { # name, (IV)name }
16 iom_const_iv (EVENT_NONE),
17 iom_const_iv (EVENT_READ),
18 iom_const_iv (EVENT_WRITE),
22 for (civ = iom_const_iv + sizeof (iom_const_iv) / sizeof (iom_const_iv [0]); civ-- > iom_const_iv; )
23 newCONSTSUB (stash, (char *)civ->name, newSViv (civ->iv));
25 /* slightly dirty to put the same scalar into all those arrays, but */
26 /* we do not expect users to modify them anyways */
27 av_push (get_av ("IOM_CLASS" "::timer::ISA", 1), SvREFCNT_inc (baseclass));
28 av_push (get_av ("IOM_CLASS" "::iow::ISA", 1), SvREFCNT_inc (baseclass));
29 av_push (get_av ("IOM_CLASS" "::pw::ISA", 1), SvREFCNT_inc (baseclass));
30 av_push (get_av ("IOM_CLASS" "::iw::ISA", 1), SvREFCNT_inc (baseclass));
32 SvREFCNT_dec (baseclass);
36 #############################################################################
38 #############################################################################
40 MODULE = IOM_MODULE PACKAGE = IOM_CLASS::watcher
43 perl_watcher::cb (SV *cb)
49 #############################################################################
51 #############################################################################
53 MODULE = IOM_MODULE PACKAGE = IOM_CLASS::timer
60 RETVAL = newSVptr ((void *)(perl_watcher *)w, "IOM_CLASS::timer");
61 w->self = (HV *)SvRV (RETVAL);
73 timer::interval (NV interval)
75 THIS->interval = interval;
80 timer::set (NV tstamp)
87 timer::start (NV tstamp = THIS->at)
94 timer::after (NV delay)
96 THIS->start (NOW + delay);
110 #############################################################################
112 #############################################################################
114 MODULE = IOM_MODULE PACKAGE = IOM_CLASS::iow
120 RETVAL = newSVptr ((void *)(perl_watcher *)w, "IOM_CLASS::iow");
121 w->self = (HV *)SvRV (RETVAL);
133 iow::events (short events)
135 THIS->events = events;
156 #############################################################################
158 #############################################################################
160 MODULE = IOM_MODULE PACKAGE = IOM_CLASS::iw
166 RETVAL = newSVptr ((void *)(perl_watcher *)w, "IOM_CLASS::iw");
167 w->self = (HV *)SvRV (RETVAL);
188 #############################################################################
190 #############################################################################
192 MODULE = IOM_MODULE PACKAGE = IOM_CLASS::pw
198 RETVAL = newSVptr ((void *)(perl_watcher *)w, "IOM_CLASS::pw");
199 w->self = (HV *)SvRV (RETVAL);