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

# User Rev Content
1 root 1.1 #############################################################################
2 root 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 root 1.1 # 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