20 lines
766 B
C
20 lines
766 B
C
#ifndef _BUFIO_H
|
|
#define _BUFIO_H
|
|
|
|
#include "buffer.h"
|
|
|
|
struct bufio; // opaque type
|
|
// users should interact only via the public functions below
|
|
struct bufio * bufio_create(int socket);
|
|
void bufio_close(struct bufio * self);
|
|
void bufio_truncate(struct bufio * self);
|
|
ssize_t bufio_readbyte(struct bufio *self, char *out);
|
|
ssize_t bufio_readline(struct bufio *self, size_t *line_offset);
|
|
ssize_t bufio_read(struct bufio *self, size_t count, size_t *buf_offset);
|
|
char * bufio_offset2ptr(struct bufio *self, size_t offset);
|
|
size_t bufio_ptr2offset(struct bufio *self, char *ptr);
|
|
ssize_t bufio_sendfile(struct bufio *self, int fd, off_t *off, size_t filesize);
|
|
ssize_t bufio_sendbuffer(struct bufio *self, buffer_t *response);
|
|
|
|
#endif /* _BUFIO_H */
|