00001
00003 #ifndef _das2_buffer_h_
00004 #define _das2_buffer_h_
00005
00006 #include <stdlib.h>
00007 #include <stdbool.h>
00008 #include <stdio.h>
00009
00010 #include "util.h"
00011
00012 #ifdef __cplusplus
00013 extern "C" {
00014 #endif
00015
00028 typedef struct das_buffer{
00029 char* sBuf;
00030 size_t uLen;
00031 char* pWrite;
00032 const char* pReadBeg;
00033 const char* pReadEnd;
00034 } DasBuf;
00035
00044 DasBuf* new_DasBuf(size_t uLen);
00045
00056 ErrorCode DasBuf_initReadWrite(DasBuf* pThis, char* sBuf, size_t uLen);
00057
00066 ErrorCode DasBuf_initReadOnly(DasBuf* pThis, const char* sBuf, size_t uLen);
00067
00074 void DasBuf_reinit(DasBuf* pThis);
00075
00084 void del_DasBuf(DasBuf* pThis);
00085
00092 ErrorCode DasBuf_printf(DasBuf* pThis, const char* sFmt, ...);
00093
00101 ErrorCode DasBuf_write(DasBuf* pThis, const void* pData, size_t uLen);
00102
00107 int DasBuf_writeFrom(DasBuf* pThis, FILE* pIn, size_t uLen);
00108
00113 size_t DasBuf_written(const DasBuf* pThis);
00114
00120 size_t DasBuf_writeSpace(const DasBuf* pThis);
00121
00131 size_t DasBuf_unread(const DasBuf* pThis);
00132
00144 size_t DasBuf_strip(DasBuf* pThis);
00145
00153 size_t DasBuf_read(DasBuf* pThis, char* pOut, size_t uOut);
00154
00160 size_t DasBuf_readOffset(const DasBuf* pThis);
00161
00169 ErrorCode DasBuf_setReadOffset(DasBuf* pThis, size_t uPos);
00170
00171 #ifdef __cplusplus
00172 }
00173 #endif
00174
00175 #endif
00176