ZE-Standard-Libraries/include/communicate/communicate.h

308 lines
9.2 KiB
C
Raw Normal View History

2018-07-30 09:45:33 +00:00
#ifndef communicate_h
#define communicate_h
2018-08-23 16:57:38 +00:00
/*
*
*/
typedef struct file_head{
char head_test[18];//数据文件头部的验证信息
unsigned long long data_num;//数据文件中的标准数据结构的数目
}F_HEAD;
2018-07-30 09:45:33 +00:00
2018-08-23 16:57:38 +00:00
/*
*
*/
typedef struct data_file{
FILE *fp;//数据文件
F_HEAD *pf_head;//数据文件头
List *pf_stdlst;//数据文件的标志数据结构的储存链表
}D_FILE;
/*
*
*/
typedef struct standard_data_blocks{
unsigned int type;//数据块的类型
unsigned long long location;//数据块在数据文件中的定位
char *sid;//数据块的ID
_Bool if_data;//数据块是否赋值
unsigned int blocks_num;//数据块字节大小
char *buff;//指向数据块储存值内存空间的指针
}STD_BLOCKS;
/*
*
*/
typedef struct standard_data_connection{
unsigned long long location;//数据块链接关系结构在文件中的定位
char *f_sid;//前一个数据块的ID
char *s_sid;//后一个数据块的ID
}STD_CTN;
/*
*
*/
typedef struct standard_data_head{
unsigned long long data_blk_num;//数据块的数目
unsigned long long data_ctn_num;//数据块链接关系结构的数目
}STD_HEAD;
/*
*
*/
typedef struct standard_data{
SID *s_id;//标准数据结构的ID
int read_data;//标准数据结构是否已经读取完整
unsigned int type;//标准数据结构所对应的类型
unsigned long long size;//标准数据结构在数据文件中的大小
unsigned long long location;//标准数据结构的头在数据文件中的定位
_Bool lock;//标准数据文件是否被锁住
List *pd_blocklst;//数据块储存链表
List *pd_ctnlst;//数据块连接关系结构的储存链表
}STD_DATA;
/*
*
*/
typedef struct message{
SID *p_sid;//消息的ID
time_t time;//消息的产生时间
char titile[16];//消息标题
unsigned long size;//消息的大小
char content[0];//消息的正文
}MSG;
2018-08-07 04:10:55 +00:00
2018-08-23 07:24:59 +00:00
/************************************************
:
************************************************/
/*
*
*: route指示数据文件路径
*: ,NULL.
*/
extern D_FILE *initDataFileForWrite(char *route);
/*
*
*: route指示数据文件路径
*: ,NULL.
*/
extern D_FILE *initDataFileForRead(char *route);
/*
*
*: type指示数据块储存数据的数据类型,data_size指示数据块储存数据的大小
*: ,NULL.
*/
extern STD_BLOCKS *initStandardDBlocks(SID *p_sid, unsigned int type, unsigned long long data_size);
/*
*
*: f_sid指示第一个数据块的SID,s_sid指示第二个数据块的SID.
*: ,NULL.
*/
extern STD_CTN *initStandardDConnection(SID *f_sid, SID *s_sid);
/*
*
*: type指示标准数据结构所储存的数据结构的数据类型, s_id指示所储存的数据结构的ID,
s_id为NULL,ID.便,ID.
*: ,NULL.
*/
extern STD_DATA *initStandardData(unsigned int type, SID *s_id);
/************************************************
:
************************************************/
/*
*
*: data为指向所添加数据所在内存空间的指针
*: 0,-1.
*/
extern int dataForStandardDBlock(STD_BLOCKS *p_stdb,void *data);
/*
*
*: 0,-1.
*/
extern int dataFileAddStandardData(D_FILE *p_dfile, STD_DATA *p_std);
/*
*
*: type指示所添加数据的数据类型, data为指向所添加数据所在内存空间的指针, data_size指示所添加数据的大小
*: 0,-1.
*/
extern int standardDataAddBlock(STD_DATA *p_std, SID *p_sid ,unsigned int type, void *data, unsigned long long data_size);
/*
*
*: f_sid指示第一个数据块的SID,s_sid指示第二个数据块的SID.
*: 0,-1.
*/
extern int standardDataAddConnection(STD_DATA *p_std, SID *f_sid, SID *s_sid);
/************************************************
:
************************************************/
/*
*,.
*: 0,-1.
*/
extern int dataFileWriteIn(D_FILE *p_dfile);
/*
*,,.
*: 0,-1.
*/
extern int dataFileReadOut(D_FILE *p_dfile);
2018-08-23 16:57:38 +00:00
2018-08-23 07:24:59 +00:00
/************************************************
:
************************************************/
/*
*
*: 0,-1.
*/
extern int releaseSTDBlocks(STD_BLOCKS *p_stdb);
/*
*
*: 0,-1.
*/
extern int releaseStandardData(STD_DATA *p_std);
/*
*
*: 0,-1.
*/
extern int releaseSTDConnection(STD_CTN *p_stdc);
/*
*
*: 0,-1.
*/
extern int releaseDFile(D_FILE *p_file);
/************************************************
:
************************************************/
/*
*
*: ,NULL.
*/
extern STD_DATA *listToSTD(List *);
/*
*
*: ,NULL.
*/
extern List *standardDataToList(STD_DATA *);
//STD_DATA *stackToSTD(Stack *);
//STD_DATA *treeToSTD(Tree *);
/************************************************
:
************************************************/
/*
*,
*: ,.
*: 0,-1.
*/
2018-08-23 07:49:02 +00:00
extern int readDataFileInfo(D_FILE *p_dfile);
2018-08-23 07:24:59 +00:00
/*
*
*: p_std为指向框架中的相关标准数据所在内存空间的指针
*: 0,-1.
*/
2018-08-23 07:49:02 +00:00
extern int readStandardData(D_FILE *p_dfile, STD_DATA *p_std);
2018-08-23 07:24:59 +00:00
/*
*
*: 0,-1.
*/
2018-08-23 07:49:02 +00:00
extern int readSTDBlocks(STD_BLOCKS *p_stdb);
2018-08-23 07:24:59 +00:00
/*
*,
*: 0,-1.
*/
2018-08-23 07:49:02 +00:00
extern int checkIfDataFile(D_FILE *p_dfile);
2018-08-23 07:24:59 +00:00
/*
*ID,
*: 0,-1.
*/
2018-08-23 07:49:02 +00:00
extern int readStandardDataBySid(D_FILE *p_dfile, SID *p_sid);
2018-08-23 07:24:59 +00:00
/************************************************
:
************************************************/
/*
*
*/
2018-08-23 07:49:02 +00:00
extern void printStandardData(void *value);
2018-08-23 07:24:59 +00:00
/************************************************
:
************************************************/
/*
*
*: ,NULL.
*/
2018-08-23 07:49:02 +00:00
extern MSG *createMessage(char *title, void *data, unsigned long data_size);
2018-08-23 07:24:59 +00:00
/*
*ipv4地址发送消息
*: 0,-1.
*/
2018-08-23 07:49:02 +00:00
extern int sendMessageIPv4(MSG *p_msg, char *ip, unsigned int port);
2018-08-23 07:24:59 +00:00
2018-07-30 09:45:33 +00:00
#endif /* communicate_h */