1 #ifndef __LUNAIX_RBUFFER_H
2 #define __LUNAIX_RBUFFER_H
4 #include <lunaix/types.h>
15 rbuffer_init(struct rbuffer* rb, char* buf, size_t maxsz)
17 *rb = (struct rbuffer){ .buffer = buf, .maxsz = maxsz };
21 rbuffer_create(char* buf, size_t maxsz);
24 rbuffer_erase(struct rbuffer* rb);
27 rbuffer_put(struct rbuffer* rb, char c);
30 rbuffer_puts(struct rbuffer* rb, char* c, size_t len);
33 rbuffer_gets(struct rbuffer* rb, char* buf, size_t len);
36 rbuffer_get(struct rbuffer* rb, char* c);
40 rbuffer_clear(struct rbuffer* rb)
42 rb->len = rb->ptr = 0;
46 rbuffer_empty(struct rbuffer* rb)
52 rbuffer_full(struct rbuffer* rb)
54 return rb->len == rb->maxsz;
58 rbuffer_put_nof(struct rbuffer* rb, char c)
60 if (rbuffer_full(rb)) {
64 return rbuffer_put(rb, c);
67 #endif /* __LUNAIX_RBUFFER_H */