aboutsummaryrefslogtreecommitdiffstats
path: root/libglouglou/sendbuf.h
blob: 7a7bd052d371fa5c02a1a2a0f3679934564caebc (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <event.h>
#include <sys/queue.h>

struct sendbuf {
	struct event_base *ev_base;
	struct event      *ev_timer;
	struct timeval     ev_timer_tv;
	int   msec_max;
	int   buffer_size;
	void *buffer;
	int   buffer_pos; /* next to use in buffer */
	int   flushing;
	int   flushing_pos; /* next to send in buffer */
	int (*send_func)(void *, int, void *);
	void *usrdata;
};

struct sendbuf	*sendbuf_new(struct event_base *, int, int,
					int (*send_func)(void *, int, void *),
					void *);
void			 sendbuf_free(struct sendbuf *);
int				 sendbuf_append(struct sendbuf *, void *, int);
void			*sendbuf_gettoken(struct sendbuf *, int);
int				 sendbuf_flush(struct sendbuf *);