#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(). |
1.3.6