Sha256: f8fc65bfedf376a8cc9b105c41151e0e6adcefe1e5a42c11e6b8d0cee264787b

Contents?: true

Size: 1.11 KB

Versions: 22

Compression:

Stored size: 1.11 KB

Contents

/*
 * Copyright (c) 2011 Tony Arcieri. Distributed under the MIT License. See
 * LICENSE.txt for further details.
 */

#ifndef NIO4R_H
#define NIO4R_H

#include "ruby.h"
#include "rubyio.h"
#include "libev.h"

struct NIO_Selector
{
    struct ev_loop *ev_loop;
    struct ev_timer timer; /* for timeouts */
    struct ev_io wakeup;

    int wakeup_reader, wakeup_writer;
    int closed, selecting;
    int ready_count;

    VALUE ready_array;
};

struct NIO_callback_data
{
    VALUE *monitor;
    struct NIO_Selector *selector;
};

struct NIO_Monitor
{
    VALUE self;
    int interests, revents;
    struct ev_io ev_io;
    struct NIO_Selector *selector;
};

#ifdef GetReadFile
# define FPTR_TO_FD(fptr) (fileno(GetReadFile(fptr)))
#else

#if !HAVE_RB_IO_T || (RUBY_VERSION_MAJOR == 1 && RUBY_VERSION_MINOR == 8)
# define FPTR_TO_FD(fptr) fileno(fptr->f)
#else
# define FPTR_TO_FD(fptr) fptr->fd
#endif /* !HAVE_RB_IO_T */

#endif /* GetReadFile */

/* Thunk between libev callbacks in NIO::Monitors and NIO::Selectors */
void NIO_Selector_monitor_callback(struct ev_loop *ev_loop, struct ev_io *io, int revents);

#endif /* NIO4R_H */

Version data entries

22 entries across 22 versions & 1 rubygems

Version Path
nio4r-1.0.0-java ext/nio4r/nio4r.h
nio4r-1.0.0 ext/nio4r/nio4r.h
nio4r-0.5.0-java ext/nio4r/nio4r.h
nio4r-0.5.0 ext/nio4r/nio4r.h
nio4r-0.4.6-java ext/nio4r/nio4r.h
nio4r-0.4.6 ext/nio4r/nio4r.h
nio4r-0.4.5-java ext/nio4r/nio4r.h
nio4r-0.4.5 ext/nio4r/nio4r.h
nio4r-0.4.4-java ext/nio4r/nio4r.h
nio4r-0.4.4 ext/nio4r/nio4r.h
nio4r-0.4.3 ext/nio4r/nio4r.h
nio4r-0.4.3-java ext/nio4r/nio4r.h
nio4r-0.4.2 ext/nio4r/nio4r.h
nio4r-0.4.2-java ext/nio4r/nio4r.h
nio4r-0.4.1-java ext/nio4r/nio4r.h
nio4r-0.4.1 ext/nio4r/nio4r.h
nio4r-0.4.0-java ext/nio4r/nio4r.h
nio4r-0.4.0 ext/nio4r/nio4r.h
nio4r-0.3.3 ext/nio4r/nio4r.h
nio4r-0.3.3-java ext/nio4r/nio4r.h