summaryrefslogtreecommitdiffstats
path: root/src/buffio.h
blob: 461bff960b6c85cad8fbcdf08f6eaaaee7f28e8c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#ifndef foobuffiohfoo
#define foobuffiohfoo

struct buffio {
    int fd;

    uint8_t *input_buf;
    size_t input_index, input_length;

    uint8_t *output_buf;
    size_t output_index, output_length;

    int b_read_cb, b_write_cb;

    void *user;
    void (*eof_cb) (struct buffio *b, void *user);
    void (*output_cb) (struct buffio *b, void *user);
    void (*input_cb) (struct buffio *b, void *user);
};

struct buffio buffio_new(int fd);
void buffio_free(struct buffio *b);

int buffio_write(struct buffio *b, const uint8_t *d, size_t l);
int buffio_print(struct buffio *b, const char *s);

int buffio_command(struct buffio *b, const char *c);
void buffio_flush_input(struct buffio *b);
int buffio_find_input(struct buffio *b, const char *c);

#endif