aboutsummaryrefslogtreecommitdiffstats
path: root/libglouglou/sendbuf.h
blob: f0a768905b926f4e90d00917631990d950224d35 (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 *);