#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(), 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.
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(), DKUTIL_FAILED, 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, DKUTIL_FAILED, edk_FAILED, edk_SUCCEEDED, 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(), edk_FAILED, 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, DKUTIL_FAILED, edk_FAILED, edk_SUCCEEDED, 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(). |
1.3.6