Sha256: d803e605b3ab775fa6ca39d99ce20fbba8be38b83ed9646417156facfcdf7bd5

Contents?: true

Size: 1.08 KB

Versions: 22

Compression:

Stored size: 1.08 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 "libev.h"
#include "ruby.h"
#include "ruby/io.h"

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

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

    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;
};

struct NIO_ByteBuffer {
    char *buffer;
    int position, limit, capacity, mark;
};

#ifdef GetReadFile
#define FPTR_TO_FD(fptr) (fileno(GetReadFile(fptr)))
#else
#define FPTR_TO_FD(fptr) fptr->fd
#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 19 versions & 5 rubygems

Version Path
scrapbook-0.3.2 vendor/ruby/2.7.0/gems/nio4r-2.5.8/ext/nio4r/nio4r.h
scrapbook-0.3.1 vendor/ruby/2.7.0/gems/nio4r-2.5.8/ext/nio4r/nio4r.h
nio4r-2.5.9-java ext/nio4r/nio4r.h
nio4r-2.5.9 ext/nio4r/nio4r.h
date_n_time_picker_activeadmin-0.1.2 vendor/bundle/ruby/2.6.0/gems/nio4r-2.5.8/ext/nio4r/nio4r.h
date_n_time_picker_activeadmin-0.1.1 vendor/bundle/ruby/2.6.0/gems/nio4r-2.5.8/ext/nio4r/nio4r.h
rails_mini_profiler-0.2.0 vendor/bundle/ruby/3.0.0/gems/nio4r-2.5.7/ext/nio4r/nio4r.h
nio4r-2.5.8-java ext/nio4r/nio4r.h
nio4r-2.5.8 ext/nio4r/nio4r.h
tdiary-5.1.6 vendor/bundle/ruby/2.7.0/gems/nio4r-2.5.7/ext/nio4r/nio4r.h
tdiary-5.1.6 vendor/bundle/ruby/2.7.0/gems/tdiary-5.1.5/vendor/bundle/ruby/3.0.0/gems/nio4r-2.5.5/ext/nio4r/nio4r.h
tdiary-5.1.6 vendor/bundle/ruby/2.7.0/gems/tdiary-5.1.5/vendor/bundle/ruby/3.0.0/gems/nio4r-2.5.4/ext/nio4r/nio4r.h
nio4r-2.5.7-java ext/nio4r/nio4r.h
nio4r-2.5.7 ext/nio4r/nio4r.h
nio4r-2.5.6-java ext/nio4r/nio4r.h
nio4r-2.5.6 ext/nio4r/nio4r.h
tdiary-5.1.5 vendor/bundle/ruby/3.0.0/gems/nio4r-2.5.4/ext/nio4r/nio4r.h
tdiary-5.1.5 vendor/bundle/ruby/3.0.0/gems/nio4r-2.5.5/ext/nio4r/nio4r.h
nio4r-2.5.5-java ext/nio4r/nio4r.h
nio4r-2.5.5 ext/nio4r/nio4r.h