OSSP CVS Repository

ossp - ossp-pkg/sio/al.h 1.4
Not logged in
[Honeypot]  [Browse]  [Directory]  [Home]  [Login
[Reports]  [Search]  [Ticket]  [Timeline
  [Raw

ossp-pkg/sio/al.h 1.4
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);
al_rc_t al_copy(al_t *al, size_t off, size_t n, al_t *tal);

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);

CVSTrac 2.0.1