#ifndef BH_INTERNAL_BUFFER_H
#define BH_INTERNAL_BUFFER_H
#include "bh.h"
#include <bh/buffer.h>
struct bh_buffer_s
{
bh_io_t base;
char *data;
size_t capacity;
size_t size;
size_t at;
int mode;
};
int bh_buffer_init(bh_buffer_t *buffer);
#define bh_buffer_destroy(buffer) \
bh_io_destroy((bh_io_t *)(buffer))
void bh_buffer_destroy_base(bh_buffer_t *buffer);
int bh_buffer_open_base(bh_buffer_t *buffer,
int mode);
void bh_buffer_close_base(bh_buffer_t *buffer);
int bh_buffer_is_open_base(bh_buffer_t *buffer);
size_t bh_buffer_read_base(bh_buffer_t *buffer,
char *data,
size_t size);
size_t bh_buffer_write_base(bh_buffer_t *buffer,
const char *data,
void bh_buffer_flush_base(bh_buffer_t *buffer);
int bh_buffer_seek_base(bh_buffer_t *buffer,
bh_off_t pos,
int dir);
bh_off_t bh_buffer_size_base(bh_buffer_t *buffer);
bh_off_t bh_buffer_tell_base(bh_buffer_t *buffer);
bh_off_t bh_buffer_available_base(bh_buffer_t *buffer);
void bh_buffer_clear_base(bh_buffer_t *buffer);
#endif /* BH_INTERNAL_BUFFER_H */