除了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;
一行一个实体&#