摘要:
项目数据库逻辑数据库主要逻辑模块分为asynDBCenter,DBNet,DBSvrasynDBCenter与DBNet之间通过共享内存通信(缓存进程为了防止GS崩溃导致玩家数据丢失,并且在DBNet里面可以做定时存储)这里的共享内存有点复杂1.发包类型的,就是跟GS与Net之间的相似带回收类型的2... 阅读全文
摘要:
#include typedef struct Node{ int data; struct Node* pNext;}NODE, *PNODE;/** *@brief 创建链表 */PNODE create_list(){ int nLength; ... 阅读全文
摘要:
#include #define MAXSIZE 10typedef struct { int r[MAXSIZE + 1];//用于存储排序的数组,r[0]用作哨兵或临时变量 int length; //用于记录顺序表的长度}SqlList;void swap(S... 阅读全文
摘要:
Observer.h#ifndef _OBSERVER_H_#define _OBSERVER_H_#include #include #include class ConcreteSubject;//抽象观察者class Observer{public: /** *@brief 更新... 阅读全文
摘要:
现在就来看看数据库发包模式这个用到了抽象工厂模式其实经理的那个差不多都是注册具体工厂到抽象工厂,只是这里不是抽象工厂而是PktFactoryMgr功能和抽象工厂差不多{#define __REGISTER_DB_PKT_CREATEFUNCTION(DBOptClassType) \ R... 阅读全文
摘要:
对于抽象工厂的封装#ifndef _AbstractFactory_#define _AbstractFactory_#include /** *@brief 具体工厂类 *@param Product 抽象产品 *@param ConcreateProduct 具体产品 */template cl... 阅读全文
摘要:
//简单工厂/*当新添加一个操作时,需要添加新的实现类和在工厂方法的switch中添加,打破了开放封闭原则*/#if 0class operation{public: virtual int GetResult(int nParam1, int nParam2) = 0;};enum Ope... 阅读全文
摘要:
# if 0#include #include #include void handler1(const boost::system::error_code &ec) { std::cout #include #include void handler1(const boost:... 阅读全文
摘要:
#include #include void handle1(const boost::system::error_code& ec){ std::cout << "5.s" << std::endl;}void handle2(const boost::system::error_code&... 阅读全文
摘要:
共享内存现在使用环形队列,以前使用boost的那一套,难以看懂,现在直接改成环形队列简单多了,将环形队列的头和尾放入共享内存中,也是安全的和内存池的实现差不多,都是先分配好,然后放入队列中,只是这个是环形队列,而那个是无锁队列,具体哪个队列的效率高,个人感觉还是环形队列的效率高然后再外层再搞个环形队... 阅读全文