… | |
… | |
2 | # IOM_CLASS constants |
2 | # IOM_CLASS constants |
3 | ############################################################################# |
3 | ############################################################################# |
4 | |
4 | |
5 | BOOT: |
5 | BOOT: |
6 | { |
6 | { |
|
|
7 | { |
7 | HV *stash = gv_stashpv ("IOM_CLASS", 1); |
8 | HV *stash = gv_stashpv ("IOM_CLASS", 1); |
8 | SV *baseclass = newSVpv ("IOM_CLASS::watcher", 0); |
9 | SV *baseclass = newSVpv ("IOM_CLASS::watcher", 0); |
9 | |
10 | |
10 | static const struct { |
11 | static const struct { |
11 | const char *name; |
12 | const char *name; |
12 | IV iv; |
13 | IV iv; |
13 | } *civ, const_iv[] = { |
14 | } *civ, iom_const_iv[] = { |
14 | # define const_iv(name) { # name, (IV)name } |
15 | # define iom_const_iv(name) { # name, (IV)name } |
15 | const_iv (EVENT_NONE), |
16 | iom_const_iv (EV_NONE), |
16 | const_iv (EVENT_READ), |
17 | iom_const_iv (EV_READ), |
17 | const_iv (EVENT_WRITE), |
18 | iom_const_iv (EV_WRITE), |
|
|
19 | # undef iom_const |
18 | }; |
20 | }; |
19 | |
21 | |
20 | for (civ = const_iv + sizeof (const_iv) / sizeof (const_iv [0]); civ-- > const_iv; ) |
22 | for (civ = iom_const_iv + sizeof (iom_const_iv) / sizeof (iom_const_iv [0]); civ-- > iom_const_iv; ) |
21 | newCONSTSUB (stash, (char *)civ->name, newSViv (civ->iv)); |
23 | newCONSTSUB (stash, (char *)civ->name, newSViv (civ->iv)); |
22 | |
24 | |
23 | /* slightly dirty to put the same scalar into all those arrays, but */ |
25 | /* slightly dirty to put the same scalar into all those arrays, but */ |
24 | /* we do not expect users to modify them anyways */ |
26 | /* we do not expect users to modify them anyways */ |
25 | av_push (get_av ("IOM_CLASS" "::timer::ISA", 1), SvREFCNT_inc (baseclass)); |
27 | av_push (get_av ("IOM_CLASS" "::timer::ISA", 1), SvREFCNT_inc (baseclass)); |
26 | av_push (get_av ("IOM_CLASS" "::iow::ISA", 1), SvREFCNT_inc (baseclass)); |
28 | av_push (get_av ("IOM_CLASS" "::iow::ISA", 1), SvREFCNT_inc (baseclass)); |
27 | av_push (get_av ("IOM_CLASS" "::pw::ISA", 1), SvREFCNT_inc (baseclass)); |
29 | av_push (get_av ("IOM_CLASS" "::pw::ISA", 1), SvREFCNT_inc (baseclass)); |
28 | av_push (get_av ("IOM_CLASS" "::iw::ISA", 1), SvREFCNT_inc (baseclass)); |
30 | av_push (get_av ("IOM_CLASS" "::iw::ISA", 1), SvREFCNT_inc (baseclass)); |
29 | |
31 | |
30 | SvREFCNT_dec (baseclass); |
32 | SvREFCNT_dec (baseclass); |
|
|
33 | } |
31 | } |
34 | } |
32 | |
35 | |
33 | ############################################################################# |
36 | ############################################################################# |
34 | # IOM_CLASS::watcher |
37 | # IOM_CLASS::watcher |
35 | ############################################################################# |
38 | ############################################################################# |
36 | |
39 | |
37 | MODULE = IOM_MODULE PACKAGE = IOM_CLASS::watcher |
40 | MODULE = IOM_MODULE PACKAGE = IOM_CLASS::watcher |
38 | |
41 | |
39 | CHAINED |
42 | IOM_CHAINED |
40 | perl_watcher::cb (SV *cb) |
43 | perl_watcher::cb (SV *cb) |
41 | CODE: |
44 | CODE: |
42 | THIS->cb (cb); |
45 | THIS->cb (cb); |
43 | OUTPUT: |
46 | OUTPUT: |
44 | RETVAL |
47 | RETVAL |
… | |
… | |
51 | |
54 | |
52 | SV * |
55 | SV * |
53 | timer::new () |
56 | timer::new () |
54 | CODE: |
57 | CODE: |
55 | timer *w = new timer; |
58 | timer *w = new timer; |
56 | w->start (NOW); |
59 | w->start (0); |
57 | RETVAL = newSVptr ((void *)(perl_watcher *)w, "IOM_CLASS::timer"); |
60 | RETVAL = newSVptr ((void *)(perl_watcher *)w, "IOM_CLASS::timer"); |
58 | w->self = (HV *)SvRV (RETVAL); |
61 | w->self = (HV *)SvRV (RETVAL); |
59 | OUTPUT: |
62 | OUTPUT: |
60 | RETVAL |
63 | RETVAL |
61 | |
64 | |
|
|
65 | # deprecated |
62 | NV |
66 | NV |
63 | timer::at () |
67 | timer::at () |
64 | CODE: |
68 | CODE: |
65 | RETVAL = THIS->at; |
69 | RETVAL = THIS->remaining () + ev_now (); |
66 | OUTPUT: |
70 | OUTPUT: |
67 | RETVAL |
71 | RETVAL |
68 | |
72 | |
69 | CHAINED |
73 | IOM_CHAINED |
70 | timer::interval (NV interval) |
74 | timer::interval (NV repeat) |
71 | CODE: |
75 | CODE: |
72 | THIS->interval = interval; |
76 | THIS->repeat = repeat; |
73 | OUTPUT: |
77 | OUTPUT: |
74 | RETVAL |
78 | RETVAL |
75 | |
79 | |
76 | CHAINED |
80 | IOM_CHAINED |
77 | timer::set (NV tstamp) |
81 | timer::set (NV tstamp, NV repeat = THIS->repeat) |
78 | CODE: |
82 | CODE: |
79 | THIS->set (tstamp); |
83 | THIS->set (tstamp, repeat); |
80 | OUTPUT: |
84 | OUTPUT: |
81 | RETVAL |
85 | RETVAL |
82 | |
86 | |
83 | CHAINED |
87 | IOM_CHAINED |
84 | timer::start (NV tstamp = THIS->at) |
88 | timer::start (NV tstamp = ev::now (), NV repeat = THIS->repeat) |
85 | CODE: |
89 | CODE: |
86 | THIS->start (tstamp); |
90 | THIS->start (tstamp - ev::now (), repeat); |
87 | OUTPUT: |
91 | OUTPUT: |
88 | RETVAL |
92 | RETVAL |
89 | |
93 | |
90 | CHAINED |
94 | IOM_CHAINED |
91 | timer::after (NV delay) |
95 | timer::after (NV delay, NV repeat = THIS->repeat) |
92 | CODE: |
96 | CODE: |
93 | THIS->start (NOW + delay); |
97 | THIS->start (delay, repeat); |
94 | OUTPUT: |
98 | OUTPUT: |
95 | RETVAL |
99 | RETVAL |
96 | |
100 | |
97 | CHAINED |
101 | IOM_CHAINED |
98 | timer::stop () |
102 | timer::stop () |
99 | CODE: |
103 | CODE: |
100 | THIS->stop (); |
104 | THIS->stop (); |
101 | OUTPUT: |
105 | OUTPUT: |
102 | RETVAL |
106 | RETVAL |
… | |
… | |
117 | RETVAL = newSVptr ((void *)(perl_watcher *)w, "IOM_CLASS::iow"); |
121 | RETVAL = newSVptr ((void *)(perl_watcher *)w, "IOM_CLASS::iow"); |
118 | w->self = (HV *)SvRV (RETVAL); |
122 | w->self = (HV *)SvRV (RETVAL); |
119 | OUTPUT: |
123 | OUTPUT: |
120 | RETVAL |
124 | RETVAL |
121 | |
125 | |
122 | CHAINED |
126 | IOM_CHAINED |
123 | iow::fd (int fd) |
127 | iow::fd (int fd) |
124 | CODE: |
128 | CODE: |
125 | THIS->fd = fd; |
129 | THIS->fd = fd; |
126 | OUTPUT: |
130 | OUTPUT: |
127 | RETVAL |
131 | RETVAL |
128 | |
132 | |
129 | CHAINED |
133 | IOM_CHAINED |
130 | iow::events (short events) |
134 | iow::events (short events) |
131 | CODE: |
135 | CODE: |
132 | THIS->events = events; |
136 | THIS->events = events; |
133 | OUTPUT: |
137 | OUTPUT: |
134 | RETVAL |
138 | RETVAL |
135 | |
139 | |
136 | CHAINED |
140 | IOM_CHAINED |
137 | iow::start () |
141 | iow::start () |
138 | CODE: |
142 | CODE: |
139 | THIS->start (); |
143 | THIS->start (); |
140 | OUTPUT: |
144 | OUTPUT: |
141 | RETVAL |
145 | RETVAL |
142 | |
146 | |
143 | CHAINED |
147 | IOM_CHAINED |
144 | iow::stop () |
148 | iow::stop () |
145 | CODE: |
149 | CODE: |
146 | THIS->stop (); |
150 | THIS->stop (); |
147 | OUTPUT: |
151 | OUTPUT: |
148 | RETVAL |
152 | RETVAL |
… | |
… | |
163 | RETVAL = newSVptr ((void *)(perl_watcher *)w, "IOM_CLASS::iw"); |
167 | RETVAL = newSVptr ((void *)(perl_watcher *)w, "IOM_CLASS::iw"); |
164 | w->self = (HV *)SvRV (RETVAL); |
168 | w->self = (HV *)SvRV (RETVAL); |
165 | OUTPUT: |
169 | OUTPUT: |
166 | RETVAL |
170 | RETVAL |
167 | |
171 | |
168 | CHAINED |
172 | IOM_CHAINED |
169 | iw::start () |
173 | iw::start () |
170 | CODE: |
174 | CODE: |
171 | THIS->start (); |
175 | THIS->start (); |
172 | OUTPUT: |
176 | OUTPUT: |
173 | RETVAL |
177 | RETVAL |
174 | |
178 | |
175 | CHAINED |
179 | IOM_CHAINED |
176 | iw::stop () |
180 | iw::stop () |
177 | CODE: |
181 | CODE: |
178 | THIS->stop (); |
182 | THIS->stop (); |
179 | OUTPUT: |
183 | OUTPUT: |
180 | RETVAL |
184 | RETVAL |
… | |
… | |
195 | RETVAL = newSVptr ((void *)(perl_watcher *)w, "IOM_CLASS::pw"); |
199 | RETVAL = newSVptr ((void *)(perl_watcher *)w, "IOM_CLASS::pw"); |
196 | w->self = (HV *)SvRV (RETVAL); |
200 | w->self = (HV *)SvRV (RETVAL); |
197 | OUTPUT: |
201 | OUTPUT: |
198 | RETVAL |
202 | RETVAL |
199 | |
203 | |
200 | CHAINED |
204 | IOM_CHAINED |
201 | pw::start (int pid) |
205 | pw::start (int pid) |
202 | CODE: |
206 | CODE: |
203 | THIS->start (pid); |
207 | THIS->start (pid); |
204 | OUTPUT: |
208 | OUTPUT: |
205 | RETVAL |
209 | RETVAL |
206 | |
210 | |
207 | CHAINED |
211 | IOM_CHAINED |
208 | pw::stop () |
212 | pw::stop () |
209 | CODE: |
213 | CODE: |
210 | THIS->stop (); |
214 | THIS->stop (); |
211 | OUTPUT: |
215 | OUTPUT: |
212 | RETVAL |
216 | RETVAL |
213 | |
217 | |
|
|
218 | int |
|
|
219 | pw::rpid () |
|
|
220 | CODE: |
|
|
221 | RETVAL = THIS->rpid; |
|
|
222 | OUTPUT: |
|
|
223 | RETVAL |
|
|
224 | |
|
|
225 | int |
|
|
226 | pw::rstatus () |
|
|
227 | CODE: |
|
|
228 | RETVAL = THIS->rstatus; |
|
|
229 | OUTPUT: |
|
|
230 | RETVAL |
|
|
231 | |
214 | void |
232 | void |
215 | pw::DESTROY () |
233 | pw::DESTROY () |
216 | |
234 | |
217 | |
235 | |