随笔分类 -  框架

棋牌游戏服务器架构: 详细设计(一) 内核设计
摘要:内核的几个组件被设计成Service,也就是说这几个模块都要实现如下接口:图1 IService接口 Start方法用来启动服务。 Stop 方法用来关闭服务。 IsService 方法用于查询当前服务是否正在工作。 内核中的几个Service都不能够直接创建,Applications在使用这些Service的时候首先要得到一个IServiceMgr的实例,这被实现成了一个另类地单例模式。IServiceMgr的接口定义如下:图2 IServiceMgr接口 IServiceMgr提供两类接口: 1) 获取Service的接口,这样直接得到具体的Service,是因... 阅读全文

posted @ 2012-09-16 15:07 李书淦 阅读(3476) 评论(0) 推荐(0)

棋牌游戏服务器架构: 总体设计
摘要:首先要说明的是, 这个棋牌游戏的服务器架构参考了网狐棋牌的架构。网狐棋牌最令人印象深刻的是其稳定性和高网络负载。它的一份压力测试报告上指出:一台双核r的INTEL Xeon 2.8CPU加上2G内存和使用共享100M光纤的机子能够支持5000人同时在线游戏。 在研究其服务器框架后发现,它的网络部分确实是比较优化的。它主要采用了Windows提供的IO完成端口来实现其网络组件。本服务器虽然参考了其设计,但是还是有很大的不同,因为这个服务器框架主要是用在linux系统之上,而网狐棋牌是基于Windows平台的,严重依赖于windows sdk。这个架构延续了网狐棋牌在网络组件所作的努力,... 阅读全文

posted @ 2012-09-15 23:26 李书淦 阅读(13850) 评论(3) 推荐(5)

一个简单地C++ Unit Test framework
摘要:一 使用先说一下如何使用这个framework。其基本用法和java的junit差不多,只是没那么强大而已。看一下下面所示的这个IntWraper 类:现在要给它写一个unittest ,你只要做如下工作就可以了:包含头文件: #include "FAssert.h"定义一个测试类,在这个类中使用下列宏来申明test case: DECLARE_AS_TESTER //申明一个类为tester,需要放在开头[必有] DECLARE_SETUP //申明一个setup方法[可选] DECLARE_TEARDOWN //申明一个teardown方法用于清理工作[可选] DECLARE_TES 阅读全文

posted @ 2010-12-26 12:24 李书淦 阅读(1701) 评论(0) 推荐(1)