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 (EV_NONE),
17 iom_const_iv (EV_READ),
18 iom_const_iv (EV_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);
69 RETVAL = THIS->remaining () + ev_now ();
74 timer::interval (NV repeat)
76 THIS->repeat = repeat;
81 timer::set (NV tstamp, NV repeat = THIS->repeat)
83 THIS->set (tstamp, repeat);
88 timer::start (NV tstamp = ev::now (), NV repeat = THIS->repeat)
90 THIS->start (tstamp - ev::now (), repeat);
95 timer::after (NV delay, NV repeat = THIS->repeat)
97 THIS->start (delay, repeat);
111 #############################################################################
113 #############################################################################
115 MODULE = IOM_MODULE PACKAGE = IOM_CLASS::iow
121 RETVAL = newSVptr ((void *)(perl_watcher *)w, "IOM_CLASS::iow");
122 w->self = (HV *)SvRV (RETVAL);
134 iow::events (short events)
136 THIS->events = events;
157 #############################################################################
159 #############################################################################
161 MODULE = IOM_MODULE PACKAGE = IOM_CLASS::iw
167 RETVAL = newSVptr ((void *)(perl_watcher *)w, "IOM_CLASS::iw");
168 w->self = (HV *)SvRV (RETVAL);
189 #############################################################################
191 #############################################################################
193 MODULE = IOM_MODULE PACKAGE = IOM_CLASS::pw
199 RETVAL = newSVptr ((void *)(perl_watcher *)w, "IOM_CLASS::pw");
200 w->self = (HV *)SvRV (RETVAL);
228 RETVAL = THIS->rstatus;