我们先来分析一下源码结构。国际惯例,先抓主要(main)矛盾。
root@ubuntu:/Cockatrice# find -name main.*
./servatrice/src/main.cpp
./servatrice/src/main.h
./oracle/src/main.cpp
./oracle/src/main.h
./cockatrice/src/main.cpp
./cockatrice/src/main.h
./dbconverter/src/main.cpp
./dbconverter/src/main.h
源码中包含main文件的有以下四部分,即存在四个可执行程序主体,大概区分一下吧:
servatrice - 数据库迁移工具
oracle - 数据库操作的封装
cockatrice - 鸡蛇程序主体
dbconverter - 数据库更新工具
看起来程序主体位于cockatrice/,其它三个工具我们后续穿插着分析。
/Cockatrice/cockatrice目录结构如下,相当经典的Qt工程结构:
cockatrice.desktop - 程序图标
cockatrice.qrc - Qt资源索引文件
cockatrice.rc - Windows下所需要的exe程序描述信息
resources/ - 资源目录
sounds/ - 音频目录
src/ - 源码目录
themes/ - 各种预设主题
translations/ - 翻译(Qt语言国际化)文件目录
没什么说的,接着看src/目录。
Cockatrice/cockatrice/src源码目录下又分为5部分,话说功能代码是真滴多啊,慢慢啃吧:
carddbparser/ - 数据库访问模块
chatview/ - 聊天室模块
sequenceEdit/ - 配置热更新&快捷键注册&语言切换等接口
settings/ - 配置模块
*.cpp & *.h - 主体功能代码
下一篇,我们来分析一下Cockatrice的入口main()函数实现,并借此理清Cockatrice的软件模块设计思路。