Gaea源码阅读(五):C客户端

Gaea不仅有Java客户端,还提供了C语言和.NET实现,其中C客户端的序列化/反序列化为C语言重写。文章重点介绍了Debug/conf/struct.conf文件的生成,它由FileScan工具根据src/structScan目录下的源代码生成。FileScan用于扫描结构体定义,结果保存在structMap中,struct.conf文件记录每个结构体信息。客户端执行流程包括配置解析、请求构造及序列化操作。
摘要由CSDN通过智能技术生成

除了Java客户端外,Gaea还提供了C语言和.NET实现。


基本都是相同的,只是序列化/反序列化用C语言重新实现了。你可能会注意到一个特别的文件:Debug/conf/struct.conf ,这个文件曾经让我很迷惑。


实际上,gaea还提供了一个编译过的可执行文件FileScan,源代码位于src/structScan目录下,入口main被重命名为了mainY。


struct.conf就是通过FileScan按如下命令生成的,

FileScan -f 定义实体类的文件


FileScan.structScan扫描结构体定义文件,可识别struct、typedef定义。

结果保存到std::map<std::string, scanStructInfo*> structMap;

然后writeConfig保存到struct.conf中


产生的struct.conf每行一个结构体

ExceptionProtocol,-1300746967,32,0;fromIP,char,-139515017,16,1;errorCode,int,824862661,0,0;ErrorMsg,char,931829677,24,1;toIP,char,1461299386,8,1;

 

typedef struct {
	int errorCode;
	char *toIP;
	char *fromIP;
	char *ErrorMsg;
} ExceptionProtocol;

一行一个实体&#

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值