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

# User Rev Content
1 root 1.1 #############################################################################
2 root 1.2 # IOM_CLASS constants
3     #############################################################################
4    
5     BOOT:
6     {
7 root 1.3 {
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 root 1.4 iom_const_iv (EV_NONE),
17     iom_const_iv (EV_READ),
18     iom_const_iv (EV_WRITE),
19 root 1.3 # 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 root 1.2
32 root 1.3 SvREFCNT_dec (baseclass);
33     }
34 root 1.2 }
35    
36     #############################################################################
37 root 1.1 # IOM_CLASS::watcher
38     #############################################################################
39    
40     MODULE = IOM_MODULE PACKAGE = IOM_CLASS::watcher
41    
42 root 1.3 IOM_CHAINED
43 root 1.1 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 root 1.4 w->start (0);
60 root 1.1 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 root 1.3 IOM_CHAINED
73 root 1.4 timer::interval (NV repeat)
74 root 1.1 CODE:
75 root 1.4 THIS->repeat = repeat;
76 root 1.1 OUTPUT:
77     RETVAL
78    
79 root 1.3 IOM_CHAINED
80 root 1.1 timer::set (NV tstamp)
81     CODE:
82     THIS->set (tstamp);
83     OUTPUT:
84     RETVAL
85    
86 root 1.3 IOM_CHAINED
87 root 1.4 timer::start (NV tstamp = ev::now ())
88 root 1.1 CODE:
89 root 1.4 THIS->start (tstamp - ev::now ());
90 root 1.1 OUTPUT:
91     RETVAL
92    
93 root 1.3 IOM_CHAINED
94 root 1.1 timer::after (NV delay)
95     CODE:
96 root 1.4 THIS->start (delay);
97 root 1.1 OUTPUT:
98     RETVAL
99    
100 root 1.3 IOM_CHAINED
101 root 1.1 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 root 1.3 IOM_CHAINED
126 root 1.1 iow::fd (int fd)
127     CODE:
128     THIS->fd = fd;
129     OUTPUT:
130     RETVAL
131    
132 root 1.3 IOM_CHAINED
133 root 1.1 iow::events (short events)
134     CODE:
135     THIS->events = events;
136     OUTPUT:
137     RETVAL
138    
139 root 1.3 IOM_CHAINED
140 root 1.1 iow::start ()
141     CODE:
142     THIS->start ();
143     OUTPUT:
144     RETVAL
145    
146 root 1.3 IOM_CHAINED
147 root 1.1 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 root 1.3 IOM_CHAINED
172 root 1.1 iw::start ()
173     CODE:
174     THIS->start ();
175     OUTPUT:
176     RETVAL
177    
178 root 1.3 IOM_CHAINED
179 root 1.1 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 root 1.3 IOM_CHAINED
204 root 1.1 pw::start (int pid)
205     CODE:
206     THIS->start (pid);
207     OUTPUT:
208     RETVAL
209    
210 root 1.3 IOM_CHAINED
211 root 1.1 pw::stop ()
212     CODE:
213     THIS->stop ();
214     OUTPUT:
215     RETVAL
216    
217 root 1.5 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 root 1.1 void
232     pw::DESTROY ()
233    
234