diff --git a/communicate/communicate.h b/communicate/communicate.h index a9ff9e6..a81de43 100644 --- a/communicate/communicate.h +++ b/communicate/communicate.h @@ -217,32 +217,32 @@ __CALLBACK_STATE(StandardDataToList); *说明: 该函数只会在数据文件管理结构中建立一个框架,不会读入实际的数据块以及数据块链接关系. *返回: 处理成功则返回0,不成功则返回-1. */ -int readDataFileInfo(D_FILE *p_dfile); +extern int readDataFileInfo(D_FILE *p_dfile); /* *读取数据文件中的特定标准数据结构 *参数: p_std为指向框架中的相关标准数据所在内存空间的指针 *返回: 处理成功则返回0,不成功则返回-1. */ -int readStandardData(D_FILE *p_dfile, STD_DATA *p_std); +extern int readStandardData(D_FILE *p_dfile, STD_DATA *p_std); /* *读取数据文件中的特定标准数据结构中的数据块 *返回: 处理成功则返回0,不成功则返回-1. */ -int readSTDBlocks(STD_BLOCKS *p_stdb); +extern int readSTDBlocks(STD_BLOCKS *p_stdb); /* *读取文件头,检验文件是否为数据文件 *返回: 处理成功则返回0,不成功则返回-1. */ -int checkIfDataFile(D_FILE *p_dfile); +extern int checkIfDataFile(D_FILE *p_dfile); /* *通过标准数据结构的ID,在数据文件中读入特定的标准数据结构 *返回: 处理成功则返回0,不成功则返回-1. */ -int readStandardDataBySid(D_FILE *p_dfile, SID *p_sid); +extern int readStandardDataBySid(D_FILE *p_dfile, SID *p_sid); /* *通过标准数据结构的ID,在数据文件中读入特定的标准数据结构函数的回调函数 @@ -260,7 +260,7 @@ __CALLBACK_STATE(findStandardDataBySid); /* *打印标准数据结构信息 */ -void printStandardData(void *value); +extern void printStandardData(void *value); @@ -274,13 +274,13 @@ void printStandardData(void *value); *创建消息 *返回: 处理成功则返回指向相关结构体所在内存空间的指针,不成功则返回NULL. */ -MSG *createMessage(char *title, void *data, unsigned long data_size); +extern MSG *createMessage(char *title, void *data, unsigned long data_size); /* *通过ipv4地址发送消息 *返回: 处理成功则返回0,不成功则返回-1. */ -int sendMessageIPv4(MSG *p_msg, char *ip, unsigned int port); +extern int sendMessageIPv4(MSG *p_msg, char *ip, unsigned int port); diff --git a/id/id.h b/id/id.h index fdda689..130386e 100644 --- a/id/id.h +++ b/id/id.h @@ -8,27 +8,154 @@ #include "../type/type.h" #include "md5.h" -void init_rand(void); -unsigned long long getId(void); -SID *getS_id(unsigned int type, unsigned int deep_level); -int fitS_id(SID * const fs_id, SID * const ss_id); -int simFitS_id(SID * fs_id, SID * ss_id); -char *s_idToASCIIString(SID * const s_id); -void setSidToASCIIString(SID * const s_id); -SID *asciiRawStringToS_id(char * const string); -SID *setS_idWithString(char *); -void s_idToMD5(SID *s_id); -char hexToChar(unsigned int); -SID *copyS_id(SID *f_sid); -void getRawS_id(SID *s_id, unsigned int type, unsigned int deep_level); +/************************************************ + 伪随机数初始化: 伪随机数初始化有关函数 + ************************************************/ -SID *initS_id(unsigned int deep_level); -int freeSidRaw(SID *s_id); -int freeS_id(SID *s_id); +/* + *用当前时间初始化伪随机数发生器 + */ +static void init_rand(void); + + + + + +/************************************************ + 初始化: 初始化有关函数 + ************************************************/ + +/* + *为一个新的SID管理结构分配内存空间 + *参数: deep_level指示原始ID的复杂度 + *返回: 处理成功则返回指向相关结构体所在内存空间的指针,不成功则返回NULL. + */ +static SID *initS_id(unsigned int deep_level); + +/* + *获得一个新的SID + *参数: deep_level指示原始ID的复杂度,type指示SID所绑定的数据结构的数据类型 + *返回: 处理成功则返回指向相关结构体所在内存空间的指针,不成功则返回NULL. + */ +extern SID *getS_id(unsigned int type, unsigned int deep_level); + +/* + *通过SID原始数据转换而成的字符串形式的MD5获得一个新的SID + *返回: 处理成功则返回指向相关结构体所在内存空间的指针,不成功则返回NULL. + */ +extern SID *setS_idWithString(char *); + +/* + *获得一个新的SID原始数据 + */ +static void getRawS_id(SID *s_id, unsigned int type, unsigned int deep_level); + +/* + *获得一个新的ID + */ +extern unsigned long long getId(void); + + + + + +/************************************************ + 比较: ID的比较函数 + ************************************************/ + +/* + *比较两个SID + *返回: 返回strcmp风格的返回值 + */ +extern int fitS_id(SID * const fs_id, SID * const ss_id);\ + +/* + *比较两个SID + *返回: 相同返回1,不相同返回0 + */ +extern int simFitS_id(SID * fs_id, SID * ss_id); + + + + + +/************************************************ + 比较: ID的转换函数 + ************************************************/ + +/* + *将原始SID数据转化成字符串 + *返回: 执行成功相关字符串,不成功则返回NULL + */ +static char *s_idToASCIIRawString(SID * const s_id); + +/* + *将SID中的Hex形式的MD5数据转化成字符串形式的MD5 + */ +extern void setSidToASCIIString(SID * const s_id); + +/* + *将原始SID数据转换成的SID转化回原始SID数据 + *返回: 执行成功相关指向数据结构内存空间的指针,不成功则返回NULL + */ +static SID *asciiRawStringToS_id(char * const string); + +/* + *将原始SID数据转化成MD5的Hex形式的数据 + */ +static void s_idToMD5(SID *s_id); + +/* + *将10进制数字,转化成字符型的16位进制数字 + */ +static char hexToChar(unsigned int); + + + + + +/************************************************ + 复制: 复制ID的函数 + ************************************************/ + +/* + *复制一个既有的SID,得到一个相同的崭新的SID + */ +extern SID *copyS_id(SID *f_sid); + + + + + +/************************************************ + 释放: 释放ID的函数 + ************************************************/ + +/* + *释放SID原始数据所占的内存空间 + */ +extern int freeSidRaw(SID *s_id); + +/* + *释放SID所有已占用的内存空间 + */ +extern int freeS_id(SID *s_id); + + + + + +/************************************************ + 相关全局变量 + ************************************************/ static _Bool if_rand; + + + + #endif /* id_h */