ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/src/iom_perl.xs
Revision: 1.5
Committed: Sat Jul 18 05:59:49 2009 UTC (14 years, 10 months ago) by root
Branch: MAIN
Changes since 1.4: +14 -0 lines
Log Message:
riddify us of meta.yml garbage in manifest

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; )
23 newCONSTSUB (stash, (char *)civ->name, newSViv (civ->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 NV
66 timer::at ()
67 CODE:
68 RETVAL = THIS->at;
69 OUTPUT:
70 RETVAL
71
72 IOM_CHAINED
73 timer::interval (NV repeat)
74 CODE:
75 THIS->repeat = repeat;
76 OUTPUT:
77 RETVAL
78
79 IOM_CHAINED
80 timer::set (NV tstamp)
81 CODE:
82 THIS->set (tstamp);
83 OUTPUT:
84 RETVAL
85
86 IOM_CHAINED
87 timer::start (NV tstamp = ev::now ())
88 CODE:
89 THIS->start (tstamp - ev::now ());
90 OUTPUT:
91 RETVAL
92
93 IOM_CHAINED
94 timer::after (NV delay)
95 CODE:
96 THIS->start (delay);
97 OUTPUT:
98 RETVAL
99
100 IOM_CHAINED
101 timer::stop ()
102 CODE:
103 THIS->stop ();
104 OUTPUT:
105 RETVAL
106
107 void
108 timer::DESTROY ()
109
110 #############################################################################
111 # IOM_CLASS::iow
112 #############################################################################
113
114 MODULE = IOM_MODULE PACKAGE = IOM_CLASS::iow
115
116 SV *
117 iow::new ()
118 CODE:
119 iow *w = new iow;
120 RETVAL = newSVptr ((void *)(perl_watcher *)w, "IOM_CLASS::iow");
121 w->self = (HV *)SvRV (RETVAL);
122 OUTPUT:
123 RETVAL
124
125 IOM_CHAINED
126 iow::fd (int fd)
127 CODE:
128 THIS->fd = fd;
129 OUTPUT:
130 RETVAL
131
132 IOM_CHAINED
133 iow::events (short events)
134 CODE:
135 THIS->events = events;
136 OUTPUT:
137 RETVAL
138
139 IOM_CHAINED
140 iow::start ()
141 CODE:
142 THIS->start ();
143 OUTPUT:
144 RETVAL
145
146 IOM_CHAINED
147 iow::stop ()
148 CODE:
149 THIS->stop ();
150 OUTPUT:
151 RETVAL
152
153 void
154 iow::DESTROY ()
155
156 #############################################################################
157 # IOM_CLASS::iw
158 #############################################################################
159
160 MODULE = IOM_MODULE PACKAGE = IOM_CLASS::iw
161
162 SV *
163 iw::new ()
164 CODE:
165 iw *w = new iw;
166 RETVAL = newSVptr ((void *)(perl_watcher *)w, "IOM_CLASS::iw");
167 w->self = (HV *)SvRV (RETVAL);
168 OUTPUT:
169 RETVAL
170
171 IOM_CHAINED
172 iw::start ()
173 CODE:
174 THIS->start ();
175 OUTPUT:
176 RETVAL
177
178 IOM_CHAINED
179 iw::stop ()
180 CODE:
181 THIS->stop ();
182 OUTPUT:
183 RETVAL
184
185 void
186 iw::DESTROY ()
187
188 #############################################################################
189 # IOM_CLASS::pw
190 #############################################################################
191
192 MODULE = IOM_MODULE PACKAGE = IOM_CLASS::pw
193
194 SV *
195 pw::new ()
196 CODE:
197 pw *w = new pw;
198 RETVAL = newSVptr ((void *)(perl_watcher *)w, "IOM_CLASS::pw");
199 w->self = (HV *)SvRV (RETVAL);
200 OUTPUT:
201 RETVAL
202
203 IOM_CHAINED
204 pw::start (int pid)
205 CODE:
206 THIS->start (pid);
207 OUTPUT:
208 RETVAL
209
210 IOM_CHAINED
211 pw::stop ()
212 CODE:
213 THIS->stop ();
214 OUTPUT:
215 RETVAL
216
217 int
218 pw::rpid ()
219 CODE:
220 RETVAL = THIS->rpid;
221 OUTPUT:
222 RETVAL
223
224 int
225 pw::rstatus ()
226 CODE:
227 RETVAL = THIS->rstatus;
228 OUTPUT:
229 RETVAL
230
231 void
232 pw::DESTROY ()
233
234