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