#include "dkcSerialize.h"
#include "dkcMemoryStream.h"
#include "dkcString.h"
#include "dkcStdio.h"
#include "dkcSJISFileSystem.h"
dkcSerialize.cのインクルード依存関係図
構成 | |
struct | dkc_MemorySerializeSignature |
マクロ定義 | |
#define | DKUTIL_C_SERIALIZE_C |
型定義 | |
typedef dkc_MemorySerializeSignature | DKC_MSS__ |
関数 | |
DKC_SERIALIZE *WINAPI | dkcAllocSerialize (UINT mode, const char *filename) |
int WINAPI | dkcFreeSerialize (DKC_SERIALIZE **ptr) |
int WINAPI | dkcSerializeWrite (DKC_SERIALIZE *ptr, const void *data, size_t size) |
DKC_DESERIALIZE *WINAPI | dkcAllocDeserialize (UINT mode, const char *filename) |
int WINAPI | dkcFreeDeserialize (DKC_DESERIALIZE **ptr) |
int WINAPI | dkcDeserializeRead (DKC_DESERIALIZE *ptr, void *data, size_t size, size_t *readsize) |
変数 | |
const size_t | gAllocMemoryStreamSize = 1024 * 32 |
dkcSerialize.c で定義されています。
|
dkcSerialize.c の 7 行で定義されています。 |
|
参照元 dkcAllocDeserialize(), dkcAllocSerialize(), dkcDeserializeRead(), dkcFreeDeserialize(), dkcFreeSerialize(), と dkcSerializeWrite(). |
|
dkcSerialize.c の 126 行で定義されています。 参照先 DKC_DESERIALIZE, DKC_MSS__, dkcAllocate(), dkcAllocMemoryStream(), dkcAllocString(), dkcFileSize(), dkcFree(), dkcFreeMemoryStream(), dkcFreeString(), dkcLoadBinary(), dkcmNOT_ASSERT, dkcStringCopy(), edkcSerializeBufferMode, edkcSerializeFileMode, FALSE, dkc_MemoryStream::mBuffer, dkc_Deserialize::mMode, dkc_MemorySerializeSignature::mpMem, dkc_MemorySerializeSignature::mpString, dkc_MemorySerializeSignature::mSerializeFlag, dkc_Deserialize::mSignature, dkc_MemoryStream::mSize, と NULL.
00127 { 00128 DKC_DESERIALIZE *p = NULL; 00129 DKC_MSS__ *pmss = NULL; 00130 size_t len_of_fn = 0; 00131 size_t filesize = dkcFileSize(filename); 00132 size_t readsize = 0; 00133 00134 p = (DKC_DESERIALIZE *)dkcAllocate(sizeof(DKC_DESERIALIZE)); 00135 if(NULL==p) return NULL; 00136 00137 if(0==filesize) goto Error; 00138 00139 00140 if(mode & edkcSerializeBufferMode) 00141 { 00142 len_of_fn = strlen(filename); 00143 pmss = (DKC_MSS__ *)dkcAllocate(sizeof(DKC_MSS__)); 00144 if(NULL==pmss) goto Error; 00145 00146 pmss->mpString = dkcAllocString(len_of_fn); 00147 if(NULL==pmss->mpString) goto Error; 00148 dkcmNOT_ASSERT(DKUTIL_FAILED( 00149 dkcStringCopy( pmss->mpString , filename,len_of_fn) 00150 )); 00151 00152 00153 pmss->mpMem = dkcAllocMemoryStream(filesize); 00154 if(NULL==pmss->mpMem) goto Error; 00155 00156 //ロード 00157 if(DKUTIL_FAILED( 00158 dkcLoadBinary(pmss->mpMem->mBuffer,pmss->mpMem->mSize,filename,&readsize) 00159 )){ 00160 goto Error; 00161 } 00162 # ifdef WIN32 00163 dkcmNOT_ASSERT(readsize != filesize); 00164 # endif 00165 pmss->mSerializeFlag = FALSE;//serializeしないからFALSE 00166 00167 p->mSignature = pmss; 00168 00169 00170 00171 } 00172 else if(mode & edkcSerializeFileMode) 00173 { 00174 00175 p->mSignature = (void *)fopen(filename,"rb"); 00176 if(NULL==p->mSignature) goto Error; 00177 } 00178 else 00179 { 00180 goto Error; 00181 } 00182 00183 p->mMode = mode; 00184 00185 return p; 00186 00187 Error: 00188 if(pmss){ 00189 dkcFreeString(&(pmss->mpString)); 00190 dkcFreeMemoryStream(&(pmss->mpMem)); 00191 dkcFree((void **)&pmss); 00192 } 00193 dkcFree((void **)&p); 00194 return NULL; 00195 00196 00197 00198 } |
|
dkcSerialize.c の 28 行で定義されています。 参照先 DKC_MSS__, DKC_SERIALIZE, dkcAllocate(), dkcAllocMemoryStream(), dkcAllocString(), dkcFree(), dkcFreeMemoryStream(), dkcFreeString(), dkcmNOT_ASSERT, dkcStringCopy(), edkcSerializeBufferMode, edkcSerializeFileMode, gAllocMemoryStreamSize, dkc_Serialize::mMode, dkc_MemorySerializeSignature::mpMem, dkc_MemorySerializeSignature::mpString, dkc_MemorySerializeSignature::mSerializeFlag, dkc_Serialize::mSignature, NULL, と TRUE.
00029 { 00030 DKC_SERIALIZE *p = NULL; 00031 DKC_MSS__ *pmss = NULL; 00032 size_t len_of_fn = 0; 00033 00034 p = (DKC_SERIALIZE *)dkcAllocate(sizeof(DKC_SERIALIZE)); 00035 if(NULL==p) return NULL; 00036 00037 00038 if(mode & edkcSerializeBufferMode){ 00039 len_of_fn = strlen(filename); 00040 pmss = (DKC_MSS__ *)dkcAllocate(sizeof(DKC_MSS__)); 00041 if(NULL==pmss) goto Error; 00042 00043 pmss->mpString = dkcAllocString(len_of_fn); 00044 if(NULL==pmss->mpString) goto Error; 00045 dkcmNOT_ASSERT(DKUTIL_FAILED( 00046 dkcStringCopy( pmss->mpString , filename,len_of_fn) 00047 )); 00048 00049 pmss->mpMem = dkcAllocMemoryStream(gAllocMemoryStreamSize); 00050 if(NULL==pmss->mpMem) goto Error; 00051 00052 pmss->mSerializeFlag = TRUE;//serializeするのでTRUE 00053 00054 p->mSignature = pmss; 00055 }else if(mode & edkcSerializeFileMode){ 00056 00057 p->mSignature = (void *)fopen(filename,"wb"); 00058 if(NULL==p->mSignature) goto Error; 00059 }else{ 00060 goto Error; 00061 } 00062 00063 p->mMode = mode; 00064 00065 return p; 00066 00067 Error: 00068 if(pmss){ 00069 dkcFreeString(&(pmss->mpString)); 00070 dkcFreeMemoryStream(&(pmss->mpMem)); 00071 dkcFree((void **)&pmss); 00072 } 00073 dkcFree((void **)&p); 00074 return NULL; 00075 } |
|
dkcSerialize.c の 222 行で定義されています。 参照先 DKC_DESERIALIZE, DKC_MSS__, dkcMemoryStreamRead(), dkcmNOT_ASSERT, edkcSerializeBufferMode, edkcSerializeFileMode, dkc_MemorySerializeSignature::mpMem, と NULL. 参照元 dkcAllocMemoryStreamDeserialize(), dkcAllocQueueDeserialize(), dkcAllocSingleListDeserialize(), dkcAllocSingleListObjectDeserialize(), dkcAllocStackDeserialize(), と dkcAllocStringDeserialize().
00222 { 00223 00224 DKC_MSS__ *pmss; 00225 00226 dkcmNOT_ASSERT(NULL==ptr); 00227 00228 if(ptr->mMode & edkcSerializeBufferMode){ 00229 pmss = (DKC_MSS__ *)ptr->mSignature; 00230 00231 dkcmNOT_ASSERT(DKUTIL_FAILED( 00232 dkcMemoryStreamRead(pmss->mpMem,data,size,readsize) 00233 )); 00234 00235 }else if(ptr->mMode & edkcSerializeFileMode){ 00236 dkcmNOT_ASSERT(1 != fread(data,size,1,(FILE *)ptr->mSignature)); 00237 }else{ 00238 return edk_FAILED; 00239 } 00240 return edk_SUCCEEDED; 00241 } |
|
dkcSerialize.c の 200 行で定義されています。 参照先 DKC_DESERIALIZE, DKC_MSS__, dkcFree(), dkcFreeMemoryStream(), dkcFreeString(), edkcSerializeBufferMode, edkcSerializeFileMode, dkc_Deserialize::mMode, dkc_MemorySerializeSignature::mpMem, dkc_MemorySerializeSignature::mpString, dkc_Deserialize::mSignature, と NULL.
00201 { 00202 DKC_MSS__ *pmss; 00203 DKC_DESERIALIZE *ps; 00204 if(NULL==ptr || NULL==*ptr || NULL==(*ptr)->mSignature){ 00205 return edk_FAILED; 00206 } 00207 ps = (*ptr); 00208 if(ps->mMode & edkcSerializeBufferMode){ 00209 pmss = (DKC_MSS__ *)ps->mSignature; 00210 00211 dkcFreeMemoryStream(&(pmss->mpMem)); 00212 dkcFreeString(&(pmss->mpString)); 00213 dkcFree((void **)&pmss); 00214 }else if(ps->mMode & edkcSerializeFileMode){ 00215 fclose((FILE *)ps->mSignature); 00216 }else{ 00217 return edk_FAILED; 00218 } 00219 return dkcFree((void **)ptr); 00220 } |
|
|
dkcSerialize.c の 106 行で定義されています。 参照先 DKC_MSS__, DKC_SERIALIZE, dkcMemoryStreamDynamicWrite(), dkcmNOT_ASSERT, edkcSerializeBufferMode, edkcSerializeFileMode, dkc_MemorySerializeSignature::mpMem, と NULL. 参照元 dkcMemoryStreamSerialize(), dkcQueueSerialize(), dkcSingleListObjectSerialize(), dkcSingleListSerialize(), dkcStackSerialize(), と dkcStringSerialize().
00106 { 00107 DKC_MSS__ *pmss; 00108 dkcmNOT_ASSERT(NULL==ptr); 00109 00110 if(ptr->mMode & edkcSerializeBufferMode){ 00111 pmss = (DKC_MSS__ *)ptr->mSignature; 00112 if(DKUTIL_FAILED( 00113 dkcMemoryStreamDynamicWrite(pmss->mpMem,data,size) 00114 )){ 00115 return edk_FAILED; 00116 } 00117 00118 }else if(ptr->mMode & edkcSerializeFileMode){ 00119 dkcmNOT_ASSERT(1 != fwrite(data,size,1,(FILE *)ptr->mSignature)); 00120 }else{ 00121 return edk_FAILED; 00122 } 00123 return edk_SUCCEEDED; 00124 } |
|
dkcSerialize.c の 25 行で定義されています。 参照元 dkcAllocSerialize(). |