#ifndef __HEV_TASK_CIO_BUFFER_H__
#define __HEV_TASK_CIO_BUFFER_H__
#include <hev-task-cio.h>
#include <hev-circular-buffer.h>
#ifdef __cplusplus
extern "C" {
#endif
#define HEV_TASK_CIO_BUFFER(p) ((HevTaskCIOBuffer *)p)
#define HEV_TASK_CIO_BUFFER_CLASS(p) ((HevTaskCIOBufferClass *)p)
#define HEV_TASK_CIO_BUFFER_TYPE (hev_task_cio_buffer_class ())
typedef struct _HevTaskCIOBuffer HevTaskCIOBuffer;
typedef struct _HevTaskCIOBufferClass HevTaskCIOBufferClass;
struct _HevTaskCIOBuffer
{
HevTaskCIO base;
HevCircularBuffer *rbuf;
HevCircularBuffer *wbuf;
};
struct _HevTaskCIOBufferClass
{
HevTaskCIOClass base;
};
HevObjectClass *hev_task_cio_buffer_class (void);
int hev_task_cio_buffer_construct (HevTaskCIOBuffer *self, size_t rsize,
size_t wsize);
HevTaskCIOBuffer *hev_task_cio_buffer_new (size_t rsize, size_t wsize);
ssize_t hev_task_cio_buffer_peek (HevTaskCIOBuffer *self, void *buf,
size_t count);
int hev_task_cio_buffer_peekv (HevTaskCIOBuffer *self, struct iovec *iov);
#ifdef __cplusplus
}
#endif
#endif