ossp-pkg/sio/al.h
1.3
typedef enum {
AL_OK,
AL_ERR_ARG,
AL_ERR_MEM,
AL_ERR_EOF,
AL_ERR_INT
} al_rc_t;
struct al_st;
typedef struct al_st al_t;
struct al_chunk_st;
typedef struct al_chunk_st al_chunk_t;
struct al_buffer_st;
typedef struct al_buffer_st al_buffer_t;
typedef enum {
AL_FORWARD,
AL_BACKWARD
} al_td_t;
struct al_tx_st;
typedef struct al_tx_st al_tx_t;
al_rc_t al_create(al_t **alp);
al_rc_t al_destroy(al_t *al);
al_rc_t al_append_bytes(al_t *al, const char *src, size_t n);
al_rc_t al_prepend_bytes(al_t *al, const char *src, size_t n);
al_rc_t al_attach_buffer(al_t *al, char *p, size_t n);
al_rc_t al_splice(al_t *al, size_t off, size_t n, al_t *nal, al_t *tal);
al_rc_t al_txalloc(al_t *al, al_tx_t **txpp);
al_rc_t al_txfree(al_t *al, al_tx_t *txp);
al_rc_t al_traverse(al_t *al, size_t off, size_t n, al_td_t dir, al_tx_t *txp);
al_rc_t al_traverse_next(al_t *al, al_tx_t *txp, al_chunk_t **alcp);
al_rc_t al_traverse_cb(al_t *al, size_t off, size_t n, al_td_t dir,
al_rc_t (*cb)(al_chunk_t *, void *), void *u);
al_rc_t al_flatten(al_t *al, size_t off, size_t n, char *dst, size_t *lenp);
size_t al_bytes(const al_t *al);
size_t al_chunk_len(al_chunk_t *alc);
size_t al_chunk_span(al_chunk_t *alc, size_t off, size_t n);
char *al_chunk_ptr(al_chunk_t *alc, size_t off);
const char *al_error(al_rc_t rc);