メインページ | アルファベット順一覧 | 構成 | ファイル一覧 | 構成メンバ | ファイルメンバ | 関連ページ

dkcMemoryStream.h

説明を見る。
00001 
00013 #ifndef DKUTIL_C_MEMORYSTREAM_H
00014 #define DKUTIL_C_MEMORYSTREAM_H
00015 
00016 #include <stdio.h>
00017 #include "dkcOSIndependent.h"
00018 
00019 #include "dkcDefined.h"
00020 #include "dkcBuffer.h"
00021 #include "dkcSerialize.h"
00026 typedef struct dkc_MemoryStream{
00028     BYTE *mBuffer;
00030     size_t mSize;
00032     size_t mNowOffset;
00033     
00034 }DKC_MEMORYSTREAM;
00035 
00036 
00037 
00038 
00039 
00040 enum edkcMemoryStream{
00042     edkcMemoryStreamSeekCurrent = SEEK_CUR,
00044     edkcMemoryStreamSeekEnd = SEEK_END,
00046     edkcMemoryStreamSeekSet = SEEK_SET,
00047 };
00048 
00049 
00050 
00060 
00061 DKC_EXTERN DKC_MEMORYSTREAM * WINAPI dkcAllocMemoryStream(size_t size);
00062 
00063 
00067 
00068 DKC_EXTERN int WINAPI dkcFreeMemoryStream(DKC_MEMORYSTREAM **ptr);
00069 
00070 
00072 DKC_EXTERN int WINAPI dkcMemoryStreamSeek(DKC_MEMORYSTREAM *ptr,int offset,int origin);
00073 
00075 DKC_EXTERN size_t WINAPI dkcMemoryStreamGetSeekPoint(DKC_MEMORYSTREAM *ptr);
00076 
00077 #define dkcMemoryStreamTell(tt) dkcMemoryStreamGetSeekPoint(tt)
00078 
00085 
00086 DKC_EXTERN int WINAPI dkcMemoryStreamRead(DKC_MEMORYSTREAM *ptr,void *buffer,size_t size,size_t *readsize);
00093 
00094 DKC_EXTERN int WINAPI dkcMemoryStreamWrite(DKC_MEMORYSTREAM *ptr,const void *buffer,size_t size);
00095 
00097 DKC_EXTERN int WINAPI dkcMemoryStreamDynamicWrite(DKC_MEMORYSTREAM *ptr,const void *buffer,size_t size);
00098 
00100 DKC_EXTERN int WINAPI dkcMemoryStreamResize(DKC_MEMORYSTREAM *ptr,size_t want_size);
00102 DKC_EXTERN size_t WINAPI dkcMemoryStreamNowOffset(DKC_MEMORYSTREAM *p);
00104 DKC_EXTERN BYTE *WINAPI dkcMemoryStreamPointer(DKC_MEMORYSTREAM *p);
00105 
00107 DKC_EXTERN DKC_MEMORYSTREAM * WINAPI dkcAllocMemoryStreamDeserialize(DKC_DESERIALIZE *se);
00108 
00109 
00111 DKC_EXTERN void dkcMemoryStreamSerialize(const DKC_MEMORYSTREAM *ptr,DKC_SERIALIZE *se);
00112 
00113 
00115 DKC_EXTERN int WINAPI dkcMemoryStreamClear(DKC_MEMORYSTREAM *ptr);
00116 
00117 
00124 DKC_EXTERN DKC_MEMORYSTREAM * WINAPI dkcAllocMemoryStreamCopy(const DKC_MEMORYSTREAM *ptr);
00125 
00126 
00127 //**********************************************************
00128 //memory stream adapter
00129 
00130 typedef struct dkc_MemoryStreamAdapter{
00131     BYTE *mBuff;
00132     size_t mSize;
00133     size_t mNowOffset;
00134 }DKC_MEMORYSTREAM_ADAPTER;
00135 
00136 DKC_EXTERN void WINAPI dkcMemoryStreamAdapterInit(DKC_MEMORYSTREAM_ADAPTER *p,BYTE *buff,size_t size);
00137 
00138 DKC_EXTERN int WINAPI dkcMemoryStreamAdapterPushBack(DKC_MEMORYSTREAM_ADAPTER *p,const BYTE *buff,size_t size);
00139 
00141 #define dkcMemoryStreamAdapterPushBackMacro(type,p,x) {\
00142     *((type *)&( (p)->mBuff[(p)->mNowOffset])) = (type)x;(p)->mNowOffset += sizeof(type);\
00143 }
00144 #define dkcMemoryStreamAdapterIsEnd(p) ( (p)->mNowOffset >= (p)->mSize )
00145 
00146 DKC_EXTERN int WINAPI dkcMemoryStreamAdapterPopBack(DKC_MEMORYSTREAM_ADAPTER *p,size_t size);
00147 
00148 DKC_EXTERN BYTE *WINAPI dkcMemoryStreamAdapterPointer(DKC_MEMORYSTREAM_ADAPTER *p);
00149 
00150 DKC_EXTERN size_t WINAPI dkcMemoryStreamAdapterSize(DKC_MEMORYSTREAM_ADAPTER *p);
00151 
00152 DKC_EXTERN int WINAPI dkcMemoryStreamAdapterSetOffset(DKC_MEMORYSTREAM_ADAPTER *ptr,size_t offset);
00153 
00154 DKC_EXTERN size_t WINAPI dkcMemoryStreamAdapterGetOffset(DKC_MEMORYSTREAM_ADAPTER *p);
00155 
00156 
00157 
00158 
00159 #endif

dkutil_cに対してTue Dec 7 01:09:56 2004に生成されました。 doxygen 1.3.6