ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/EV/EV.xs
(Generate patch)

Comparing EV/EV.xs (file contents):
Revision 1.20 by root, Wed Oct 31 13:57:34 2007 UTC vs.
Revision 1.21 by root, Wed Oct 31 14:44:35 2007 UTC

3#include "XSUB.h" 3#include "XSUB.h"
4 4
5/*#include <netinet/in.h>*/ 5/*#include <netinet/in.h>*/
6 6
7#define TIMEOUT_NONE HUGE_VAL 7#define TIMEOUT_NONE HUGE_VAL
8#define HAVE_EPOLL 0
8 9
9#define EV_PROTOTYPES 1 10#define EV_PROTOTYPES 1
10#include "EV/EVAPI.h" 11#include "EV/EVAPI.h"
11 12
12#include "libev/ev.c" 13#include "libev/ev.c"
199 200
200///////////////////////////////////////////////////////////////////////////// 201/////////////////////////////////////////////////////////////////////////////
201// XS interface functions 202// XS interface functions
202 203
203MODULE = EV PACKAGE = EV PREFIX = ev_ 204MODULE = EV PACKAGE = EV PREFIX = ev_
205
206PROTOTYPES: ENABLE
204 207
205BOOT: 208BOOT:
206{ 209{
207 int i; 210 int i;
208 HV *stash = gv_stashpv ("EV", 1); 211 HV *stash = gv_stashpv ("EV", 1);
297void ev_loop_done (int value = 1) 300void ev_loop_done (int value = 1)
298 CODE: 301 CODE:
299 ev_loop_done = value; 302 ev_loop_done = value;
300 303
301struct ev_io *io (SV *fh, int events, SV *cb) 304struct ev_io *io (SV *fh, int events, SV *cb)
302 PROTOTYPE: $$&
303 ALIAS: 305 ALIAS:
304 io_ns = 1 306 io_ns = 1
305 CODE: 307 CODE:
306 RETVAL = e_new (sizeof (struct ev_io), cb); 308 RETVAL = e_new (sizeof (struct ev_io), cb);
307 RETVAL->fh = newSVsv (fh); 309 RETVAL->fh = newSVsv (fh);
309 if (!ix) evio_start (RETVAL); 311 if (!ix) evio_start (RETVAL);
310 OUTPUT: 312 OUTPUT:
311 RETVAL 313 RETVAL
312 314
313struct ev_timer *timer (NV after, NV repeat, SV *cb) 315struct ev_timer *timer (NV after, NV repeat, SV *cb)
314 PROTOTYPE: $$&
315 ALIAS: 316 ALIAS:
316 timer_ns = 1 317 timer_ns = 1
317 INIT: 318 INIT:
318 CHECK_REPEAT (repeat); 319 CHECK_REPEAT (repeat);
319 CODE: 320 CODE:
322 if (!ix) evtimer_start (RETVAL); 323 if (!ix) evtimer_start (RETVAL);
323 OUTPUT: 324 OUTPUT:
324 RETVAL 325 RETVAL
325 326
326struct ev_periodic *periodic (NV at, NV interval, SV *cb) 327struct ev_periodic *periodic (NV at, NV interval, SV *cb)
327 PROTOTYPE: $$&
328 ALIAS: 328 ALIAS:
329 periodic_ns = 1 329 periodic_ns = 1
330 INIT: 330 INIT:
331 CHECK_REPEAT (interval); 331 CHECK_REPEAT (interval);
332 CODE: 332 CODE:
335 if (!ix) evperiodic_start (RETVAL); 335 if (!ix) evperiodic_start (RETVAL);
336 OUTPUT: 336 OUTPUT:
337 RETVAL 337 RETVAL
338 338
339struct ev_signal *signal (Signal signum, SV *cb) 339struct ev_signal *signal (Signal signum, SV *cb)
340 PROTOTYPE: $&
341 ALIAS: 340 ALIAS:
342 signal_ns = 1 341 signal_ns = 1
343 CODE: 342 CODE:
344 RETVAL = e_new (sizeof (struct ev_signal), cb); 343 RETVAL = e_new (sizeof (struct ev_signal), cb);
345 evsignal_set (RETVAL, signum); 344 evsignal_set (RETVAL, signum);
346 if (!ix) evsignal_start (RETVAL); 345 if (!ix) evsignal_start (RETVAL);
347 OUTPUT: 346 OUTPUT:
348 RETVAL 347 RETVAL
349 348
350struct ev_idle *idle (SV *cb) 349struct ev_idle *idle (SV *cb)
351 PROTOTYPE: &
352 ALIAS: 350 ALIAS:
353 idle_ns = 1 351 idle_ns = 1
354 CODE: 352 CODE:
355 RETVAL = e_new (sizeof (struct ev_idle), cb); 353 RETVAL = e_new (sizeof (struct ev_idle), cb);
356 evidle_set (RETVAL); 354 evidle_set (RETVAL);
357 if (!ix) evidle_start (RETVAL); 355 if (!ix) evidle_start (RETVAL);
358 OUTPUT: 356 OUTPUT:
359 RETVAL 357 RETVAL
360 358
361struct ev_check *check (SV *cb) 359struct ev_check *check (SV *cb)
362 PROTOTYPE: &
363 ALIAS: 360 ALIAS:
364 check_ns = 1 361 check_ns = 1
365 CODE: 362 CODE:
366 RETVAL = e_new (sizeof (struct ev_check), cb); 363 RETVAL = e_new (sizeof (struct ev_check), cb);
367 evcheck_set (RETVAL); 364 evcheck_set (RETVAL);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines