查看: 192|回复: 1

棋牌游戏服务器架构: 详细设计(一) 内核设计(3)

[复制链接]

8

主题

36

帖子

220

积分

vip会员

Rank: 1

积分
220
发表于 2020-3-27 15:56:41 | 显示全部楼层 |阅读模式
4 DatabaseService详细设计

棋牌游戏服务器架构: 详细设计(一) 内核设计(3)

图6  DatabaseService结构图

      可以对比一下DatabaseService和TCPServerService的结构图,你会发现他们是那么地相似。对的,它们的设计思路如出一辙。DatabaseService实现了IService和IDatabaseService这两个接口。IDatabaseService主要只提供了3个接口:

      1) Connect  连接到一个数据库

      2) Query   进行查询。 这里有两点要注意:1) Query以后不会立马得到结果,因为这是异步的; 2) 存储过程的调用也得使用这个方法,你只要将query语句写成 'select stroage_procedure(param1,param2,...)' 就行了。

      3) SetObserver 设置观察者。因为查询是异步的,所以你要设一个观察者来得到通知。

      DatabaseService管理着一些数据库连接DBConnect, 每一个DBConnect也与一个整数标识相关联,可以通过GetIndex获得。同时你可以通过IsConnect来查询这个DBConnect是否处于连接状态。

       在实现IDBServiceObserver时,你需要实现下面两个方法:

       1) OnDBConnect  在数据库连接建立时会调用

       2) OnQueryEnd  在这里你可以得到一个表示查询结果的QueryResult对象。你可以通过它知道查询的状态,以及结果信息。

回复

使用道具 举报

*滑块验证:
您需要登录后才可以回帖 登录 | enginedx注册

本版积分规则

 
 



邮件留言:


 
返回顶部