00001
00008 #ifndef DKUTIL_C_SERIALIZE_H
00009 #define DKUTIL_C_SERIALIZE_H
00010
00011 #include "dkcOSIndependent.h"
00012
00013
00014
00015 enum edkcSerialize{
00016
00017 edkcSerializeBufferMode = 0x01,
00018 edkcSerializeFileMode = 0x02,
00019
00020
00021
00022
00023
00025 edkcSerializeIDStack = 'stac',
00027 edkcSerializeIDQueue = 'queu',
00028 edkcSerializeIDString = 'stri',
00029 edkcSerializeIDBuffer = 'buff',
00030 edkcSerializeIDMemoryStream = 'mstr',
00031 edkcSerializeIDCircularMemoryStream = 'cmst',
00032 edkcSerializeIDSingleList = 'slis',
00033 edkcSerializeID2Tree = '2tre',
00034 edkcSerializeIDSingleListObject = 'slio',
00035 };
00036
00037
00038
00042 typedef struct dkc_Serialize{
00043 UINT mMode;
00044 void *mSignature;
00045 }DKC_SERIALIZE;
00049 typedef struct dkc_Deserialize{
00050 UINT mMode;
00051 void *mSignature;
00052 }DKC_DESERIALIZE;
00053
00054
00055 typedef int (CALLBACK *DKC_SERIALIZE_F_TYPE)(DKC_SERIALIZE *);
00056
00057
00061 DKC_EXTERN DKC_SERIALIZE * WINAPI dkcAllocSerialize(UINT mode,const char *filename);
00067 DKC_EXTERN int WINAPI dkcFreeSerialize(DKC_SERIALIZE **ptr);
00068
00069 DKC_EXTERN DKC_DESERIALIZE * WINAPI dkcAllocDeserialize(UINT mode,const char *filename);
00070
00071 DKC_EXTERN int WINAPI dkcFreeDeserialize(DKC_DESERIALIZE **);
00072
00073 DKC_EXTERN int WINAPI dkcDeserializeRead(DKC_DESERIALIZE *ptr,void *data,size_t size,size_t *readsize);
00074
00075 DKC_EXTERN int WINAPI dkcSerializeWrite(DKC_SERIALIZE *ptr,const void *data,size_t size);
00076
00077
00078
00079
00080 #endif