ZE-Standard-Libraries/id/id.h

162 lines
3.4 KiB
C
Raw Normal View History

2018-07-25 14:10:09 +00:00
#ifndef id_h
#define id_h
2018-07-30 09:45:33 +00:00
#include <stdio.h>
2018-07-25 14:10:09 +00:00
#include <stdlib.h>
2018-07-30 09:45:33 +00:00
#include <string.h>
2018-07-25 14:10:09 +00:00
#include <time.h>
2018-07-30 09:45:33 +00:00
#include "../type/type.h"
2018-08-14 15:59:55 +00:00
#include "md5.h"
2018-07-30 09:45:33 +00:00
2018-07-25 14:10:09 +00:00
2018-07-30 09:45:33 +00:00
2018-08-14 15:59:55 +00:00
2018-08-23 07:49:02 +00:00
/************************************************
:
************************************************/
2018-07-30 09:45:33 +00:00
2018-08-23 07:49:02 +00:00
/*
*
*/
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);
/************************************************
************************************************/
2018-07-25 14:10:09 +00:00
2018-08-14 15:59:55 +00:00
static _Bool if_rand;
2018-08-23 07:49:02 +00:00
2018-07-25 14:10:09 +00:00
#endif /* id_h */