00001 #ifndef DKUTIL_C_CIRCULAR_STREAM_H
00002 #define DKUTIL_C_CIRCULAR_STREAM_H
00003
00004
00005 #include "dkcStream.h"
00006
00007 #if 0
00008 enum edkcCircularStream{
00009 edkcCircularStreamInitMemory = edkcStreamInitMemory,
00010 edkcCircularStreamInitFile = edkcStreamInitFile,
00012 edkcCircularStreamDumpAll,
00014 edkcCircularStreamDumpEnable,
00015
00016 };
00017
00019 typedef struct dkc_CircularStream{
00021 DKC_STREAM *mStream;
00023 size_t mStart,mEnd;
00025 size_t mEnableLength ;
00027 size_t mSize ;
00029 short mMode;
00030 } DKC_CIRCULARSTREAM;
00031
00032 DKC_EXTERN DKC_CIRCULARSTREAM * WINAPI dkcAllocNewCircularStream(size_t size,short mode,const char *filename,const char *openmode);
00033
00034 DKC_EXTERN int WINAPI dkcFreeDeleteCircularStream(DKC_CIRCULARSTREAM **ptr);
00035
00036 DKC_EXTERN int WINAPI dkcNewCircularStream(DKC_CIRCULARSTREAM *ptr,size_t size);
00037
00038 DKC_EXTERN int WINAPI dkcNewCircularStreamForFile(DKC_CIRCULARSTREAM *ptr,size_t size,const char *filename,const char *openmode);
00039
00041 DKC_EXTERN int WINAPI dkcDeleteCircularStream(DKC_CIRCULARSTREAM *ptr);
00042
00043
00053
00054 DKC_EXTERN int WINAPI dkcCircularStreamRead(DKC_CIRCULARSTREAM *ptr,void *buffer,size_t size,size_t *readsize);
00055
00057 DKC_EXTERN int WINAPI dkcCircularStreamReference(DKC_CIRCULARSTREAM *ptr,void *buffer,size_t size,size_t *readsize);
00058
00067
00068 DKC_EXTERN int WINAPI dkcCircularStreamWrite(DKC_CIRCULARSTREAM *ptr,const void *buffer,size_t size);
00069
00070
00075
00076 DKC_EXTERN int WINAPI dkcCircularStreamDump(DKC_CIRCULARSTREAM *ptr,const char *filename,int flag);
00078 DKC_EXTERN int WINAPI dkcCircularStreamZero(DKC_CIRCULARSTREAM *ptr);
00080 DKC_EXTERN int WINAPI dkcCircularStreamToBuffer(const DKC_STREAM *ptr,char *buff,size_t size,size_t want_size);
00081
00082 #ifndef DKUTIL_C_CIRCULAR_MEMORYSTREAM_C
00083 # include "dkcCircularStream.h"
00084 #endif
00085
00086 #endif //eo0
00087
00088 #endif