ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/src/iom_perl.xs
Revision: 1.6
Committed: Sat Dec 26 09:23:53 2009 UTC (14 years, 5 months ago) by root
Branch: MAIN
CVS Tags: before_dynamic_fontidx, rel-9_11, rel-9_10, rel-9_12, dynamic_fontidx, rel-9_09, rel-9_07
Changes since 1.5: +8 -7 lines
Log Message:
*** empty log message ***

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 root 1.6 # deprecated
66 root 1.1 NV
67     timer::at ()
68     CODE:
69 root 1.6 RETVAL = THIS->remaining () + ev_now ();
70 root 1.1 OUTPUT:
71     RETVAL
72    
73 root 1.3 IOM_CHAINED
74 root 1.4 timer::interval (NV repeat)
75 root 1.1 CODE:
76 root 1.4 THIS->repeat = repeat;
77 root 1.1 OUTPUT:
78     RETVAL
79    
80 root 1.3 IOM_CHAINED
81 root 1.6 timer::set (NV tstamp, NV repeat = THIS->repeat)
82 root 1.1 CODE:
83 root 1.6 THIS->set (tstamp, repeat);
84 root 1.1 OUTPUT:
85     RETVAL
86    
87 root 1.3 IOM_CHAINED
88 root 1.6 timer::start (NV tstamp = ev::now (), NV repeat = THIS->repeat)
89 root 1.1 CODE:
90 root 1.6 THIS->start (tstamp - ev::now (), repeat);
91 root 1.1 OUTPUT:
92     RETVAL
93    
94 root 1.3 IOM_CHAINED
95 root 1.6 timer::after (NV delay, NV repeat = THIS->repeat)
96 root 1.1 CODE:
97 root 1.6 THIS->start (delay, repeat);
98 root 1.1 OUTPUT:
99     RETVAL
100    
101 root 1.3 IOM_CHAINED
102 root 1.1 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 root 1.3 IOM_CHAINED
127 root 1.1 iow::fd (int fd)
128     CODE:
129     THIS->fd = fd;
130     OUTPUT:
131     RETVAL
132    
133 root 1.3 IOM_CHAINED
134 root 1.1 iow::events (short events)
135     CODE:
136     THIS->events = events;
137     OUTPUT:
138     RETVAL
139    
140 root 1.3 IOM_CHAINED
141 root 1.1 iow::start ()
142     CODE:
143     THIS->start ();
144     OUTPUT:
145     RETVAL
146    
147 root 1.3 IOM_CHAINED
148 root 1.1 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 root 1.3 IOM_CHAINED
173 root 1.1 iw::start ()
174     CODE:
175     THIS->start ();
176     OUTPUT:
177     RETVAL
178    
179 root 1.3 IOM_CHAINED
180 root 1.1 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 root 1.3 IOM_CHAINED
205 root 1.1 pw::start (int pid)
206     CODE:
207     THIS->start (pid);
208     OUTPUT:
209     RETVAL
210    
211 root 1.3 IOM_CHAINED
212 root 1.1 pw::stop ()
213     CODE:
214     THIS->stop ();
215     OUTPUT:
216     RETVAL
217    
218 root 1.5 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 root 1.1 void
233     pw::DESTROY ()
234    
235