2017-05-24 11:04:19 +00:00
|
|
|
#ifndef MM_POLL_H
|
|
|
|
#define MM_POLL_H
|
2017-04-07 15:04:43 +00:00
|
|
|
|
|
|
|
/*
|
|
|
|
* machinarium.
|
|
|
|
*
|
|
|
|
* cooperative multitasking engine.
|
|
|
|
*/
|
|
|
|
|
2017-05-24 11:04:19 +00:00
|
|
|
typedef struct mm_pollif mm_pollif_t;
|
|
|
|
typedef struct mm_poll mm_poll_t;
|
2017-04-07 15:04:43 +00:00
|
|
|
|
2017-05-24 11:04:19 +00:00
|
|
|
struct mm_pollif
|
|
|
|
{
|
2017-04-07 15:04:43 +00:00
|
|
|
char *name;
|
|
|
|
mm_poll_t *(*create)(void);
|
|
|
|
void (*free)(mm_poll_t*);
|
|
|
|
int (*shutdown)(mm_poll_t*);
|
|
|
|
int (*step)(mm_poll_t*, int);
|
|
|
|
int (*add)(mm_poll_t*, mm_fd_t*, int);
|
2017-04-19 13:38:00 +00:00
|
|
|
int (*read)(mm_poll_t*, mm_fd_t*, mm_fd_callback_t, void*, int);
|
|
|
|
int (*write)(mm_poll_t*, mm_fd_t*, mm_fd_callback_t, void*, int);
|
2017-04-07 15:04:43 +00:00
|
|
|
int (*del)(mm_poll_t*, mm_fd_t*);
|
|
|
|
};
|
|
|
|
|
2017-05-24 11:04:19 +00:00
|
|
|
struct mm_poll
|
|
|
|
{
|
2017-04-07 15:04:43 +00:00
|
|
|
mm_pollif_t *iface;
|
|
|
|
};
|
|
|
|
|
2017-05-24 11:04:19 +00:00
|
|
|
#endif /* MM_POLL_H */
|