Librasta & Libsci
A C implementation of the RaSTA protocol stack
Data Structures | Macros | Typedefs | Functions
events.h File Reference
#include <stdint.h>
Include dependency graph for events.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  timed_event
 
struct  fd_event
 

Macros

#define EV_READABLE   (1 << 0)
 
#define EV_WRITABLE   (1 << 1)
 
#define EV_EXCEPTIONAL   (1 << 2)
 

Typedefs

typedef struct event_system event_system
 
typedef struct rasta rasta
 
typedef int(* event_ptr) (void *h, int fd)
 
typedef struct timed_event timed_event
 
typedef struct fd_event fd_event
 

Functions

void enable_timed_event (timed_event *event)
 
void enable_fd_event (fd_event *event)
 
void disable_timed_event (timed_event *event)
 
void disable_fd_event (fd_event *event)
 
void add_timed_event (event_system *ev_sys, timed_event *event)
 
void remove_timed_event (event_system *ev_sys, timed_event *event)
 
void add_fd_event (event_system *ev_sys, fd_event *event, int options)
 
void rasta_add_fd_event (rasta *h, fd_event *event, int options)
 
void remove_fd_event (event_system *ev_sys, fd_event *event)
 
void rasta_remove_fd_event (rasta *h, fd_event *event)
 

Macro Definition Documentation

◆ EV_EXCEPTIONAL

#define EV_EXCEPTIONAL   (1 << 2)

◆ EV_READABLE

#define EV_READABLE   (1 << 0)

◆ EV_WRITABLE

#define EV_WRITABLE   (1 << 1)

Typedef Documentation

◆ event_ptr

typedef int(* event_ptr) (void *h, int fd)

◆ event_system

typedef struct event_system event_system

◆ fd_event

typedef struct fd_event fd_event

contains a function pointer to a callback function and a file descriptor

◆ rasta

typedef struct rasta rasta

◆ timed_event

typedef struct timed_event timed_event

contains a function pointer to a callback function and interval in microseconds

Function Documentation

◆ add_fd_event()

void add_fd_event ( event_system ev_sys,
fd_event event,
int  options 
)

Add a fd event to an event system. A event can only be in one event system at a time. (not thread safe)

Parameters
ev_systhe event will be added to this event system
eventthe event to add
optionsset how the event should be triggered. (EV_READABLE | EV_WRITABLE | EV_CHANGE)

◆ add_timed_event()

void add_timed_event ( event_system ev_sys,
timed_event event 
)

Add a timed event to an event system. A event can only be in one event system at a time. (not thread safe)

Parameters
ev_systhe event will be added to this event system
eventthe event to add

◆ disable_fd_event()

void disable_fd_event ( fd_event event)

enables a fd event

Parameters
eventthe event to enable

◆ disable_timed_event()

void disable_timed_event ( timed_event event)

disables a timed event

Parameters
eventthe event to disable

◆ enable_fd_event()

void enable_fd_event ( fd_event event)

enables a fd event

Parameters
eventthe event to enable

◆ enable_timed_event()

void enable_timed_event ( timed_event event)

enables a timed event, it will fire in event::interval nanoseconds

Parameters
eventthe event to enable

◆ rasta_add_fd_event()

void rasta_add_fd_event ( rasta h,
fd_event event,
int  options 
)

◆ rasta_remove_fd_event()

void rasta_remove_fd_event ( rasta h,
fd_event event 
)

◆ remove_fd_event()

void remove_fd_event ( event_system ev_sys,
fd_event event 
)

Removes a fd event from its event system. (not thread safe)

Parameters
ev_systhe event will be added to this event system
eventthe event to add

◆ remove_timed_event()

void remove_timed_event ( event_system ev_sys,
timed_event event 
)

Removes a timed event from its event system. (not thread safe)

Parameters
ev_systhe event will be added to this event system
eventthe event to add