#ifndef DGRAMBUF_H
#define DGRAMBUF_H
/*
 * dgrambuf.c - C datagrams buffer.
 * 
 * Copyright 2016 by Ludovic Pouzenc <ludovic@pouzenc.fr>
 */
#include <stdlib.h> /* size_t */

typedef struct dgrambuf_t *dgrambuf_t;

dgrambuf_t dgrambuf_new(size_t dgram_slots, size_t dgram_max_size, size_t dgram_header_size, size_t iovec_slots);
void dgrambuf_free(dgrambuf_t *dbuf);

size_t dgrambuf_free_count(const dgrambuf_t);
void dgrambuf_set_validate_func(dgrambuf_t dbuf, unsigned int (*func)(unsigned int, void *) );


int dgrambuf_recvmmsg(dgrambuf_t dbuf, int sockfd);
ssize_t dgrambuf_write(dgrambuf_t dbuf, int fd);

#endif /* DGRAMBUF_H */