ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/src/iom_perl.xs
Revision: 1.2
Committed: Thu Dec 14 17:22:04 2006 UTC (17 years, 5 months ago) by root
Branch: MAIN
Changes since 1.1: +32 -0 lines
Log Message:
*** empty log message ***

File Contents

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