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