ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/src/iom_perl.xs
Revision: 1.7
Committed: Fri Jul 29 08:35:09 2011 UTC (12 years, 9 months ago) by root
Branch: MAIN
CVS Tags: rxvt-unicode-rel-9_29, rxvt-unicode-rel-9_26, rxvt-unicode-rel-9_25, rxvt-unicode-rel-9_22, rxvt-unicode-rel-9_20, rxvt-unicode-rel-9_21, rel-9_14, rxvt-unicode-rel-9_19, rxvt-unicode-rel-9_18, rxvt-unicode-rel-9_17, rxvt-unicode-rel-9_16, rxvt-unicode-rel-9_15, rxvt-unicode-rel-9_30, HEAD
Changes since 1.6: +2 -2 lines
Log Message:
*** empty log message ***

File Contents

# Content
1 #############################################################################
2 # IOM_CLASS constants
3 #############################################################################
4
5 BOOT:
6 {
7 {
8 HV *stash = gv_stashpv ("IOM_CLASS", 1);
9 SV *baseclass = newSVpv ("IOM_CLASS::watcher", 0);
10
11 static const struct {
12 const char *name;
13 IV iv;
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),
19 # undef iom_const
20 };
21
22 for (civ = iom_const_iv + sizeof (iom_const_iv) / sizeof (iom_const_iv [0]); civ > iom_const_iv; civ--)
23 newCONSTSUB (stash, (char *)civ[-1].name, newSViv (civ[-1].iv));
24
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));
31
32 SvREFCNT_dec (baseclass);
33 }
34 }
35
36 #############################################################################
37 # IOM_CLASS::watcher
38 #############################################################################
39
40 MODULE = IOM_MODULE PACKAGE = IOM_CLASS::watcher
41
42 IOM_CHAINED
43 perl_watcher::cb (SV *cb)
44 CODE:
45 THIS->cb (cb);
46 OUTPUT:
47 RETVAL
48
49 #############################################################################
50 # IOM_CLASS::timer
51 #############################################################################
52
53 MODULE = IOM_MODULE PACKAGE = IOM_CLASS::timer
54
55 SV *
56 timer::new ()
57 CODE:
58 timer *w = new timer;
59 w->start (0);
60 RETVAL = newSVptr ((void *)(perl_watcher *)w, "IOM_CLASS::timer");
61 w->self = (HV *)SvRV (RETVAL);
62 OUTPUT:
63 RETVAL
64
65 # deprecated
66 NV
67 timer::at ()
68 CODE:
69 RETVAL = THIS->remaining () + ev_now ();
70 OUTPUT:
71 RETVAL
72
73 IOM_CHAINED
74 timer::interval (NV repeat)
75 CODE:
76 THIS->repeat = repeat;
77 OUTPUT:
78 RETVAL
79
80 IOM_CHAINED
81 timer::set (NV tstamp, NV repeat = THIS->repeat)
82 CODE:
83 THIS->set (tstamp, repeat);
84 OUTPUT:
85 RETVAL
86
87 IOM_CHAINED
88 timer::start (NV tstamp = ev::now (), NV repeat = THIS->repeat)
89 CODE:
90 THIS->start (tstamp - ev::now (), repeat);
91 OUTPUT:
92 RETVAL
93
94 IOM_CHAINED
95 timer::after (NV delay, NV repeat = THIS->repeat)
96 CODE:
97 THIS->start (delay, repeat);
98 OUTPUT:
99 RETVAL
100
101 IOM_CHAINED
102 timer::stop ()
103 CODE:
104 THIS->stop ();
105 OUTPUT:
106 RETVAL
107
108 void
109 timer::DESTROY ()
110
111 #############################################################################
112 # IOM_CLASS::iow
113 #############################################################################
114
115 MODULE = IOM_MODULE PACKAGE = IOM_CLASS::iow
116
117 SV *
118 iow::new ()
119 CODE:
120 iow *w = new iow;
121 RETVAL = newSVptr ((void *)(perl_watcher *)w, "IOM_CLASS::iow");
122 w->self = (HV *)SvRV (RETVAL);
123 OUTPUT:
124 RETVAL
125
126 IOM_CHAINED
127 iow::fd (int fd)
128 CODE:
129 THIS->fd = fd;
130 OUTPUT:
131 RETVAL
132
133 IOM_CHAINED
134 iow::events (short events)
135 CODE:
136 THIS->events = events;
137 OUTPUT:
138 RETVAL
139
140 IOM_CHAINED
141 iow::start ()
142 CODE:
143 THIS->start ();
144 OUTPUT:
145 RETVAL
146
147 IOM_CHAINED
148 iow::stop ()
149 CODE:
150 THIS->stop ();
151 OUTPUT:
152 RETVAL
153
154 void
155 iow::DESTROY ()
156
157 #############################################################################
158 # IOM_CLASS::iw
159 #############################################################################
160
161 MODULE = IOM_MODULE PACKAGE = IOM_CLASS::iw
162
163 SV *
164 iw::new ()
165 CODE:
166 iw *w = new iw;
167 RETVAL = newSVptr ((void *)(perl_watcher *)w, "IOM_CLASS::iw");
168 w->self = (HV *)SvRV (RETVAL);
169 OUTPUT:
170 RETVAL
171
172 IOM_CHAINED
173 iw::start ()
174 CODE:
175 THIS->start ();
176 OUTPUT:
177 RETVAL
178
179 IOM_CHAINED
180 iw::stop ()
181 CODE:
182 THIS->stop ();
183 OUTPUT:
184 RETVAL
185
186 void
187 iw::DESTROY ()
188
189 #############################################################################
190 # IOM_CLASS::pw
191 #############################################################################
192
193 MODULE = IOM_MODULE PACKAGE = IOM_CLASS::pw
194
195 SV *
196 pw::new ()
197 CODE:
198 pw *w = new pw;
199 RETVAL = newSVptr ((void *)(perl_watcher *)w, "IOM_CLASS::pw");
200 w->self = (HV *)SvRV (RETVAL);
201 OUTPUT:
202 RETVAL
203
204 IOM_CHAINED
205 pw::start (int pid)
206 CODE:
207 THIS->start (pid);
208 OUTPUT:
209 RETVAL
210
211 IOM_CHAINED
212 pw::stop ()
213 CODE:
214 THIS->stop ();
215 OUTPUT:
216 RETVAL
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
232 void
233 pw::DESTROY ()
234
235