CMoLineMgr
- #ifndef __E3GLOGOBJECTDB_H__
- #define __E3GLOGOBJECTDB_H__
- #include "PubCommon\Singleton.h"
- #include "PubCommon\MemoryManager.h"
- #include "PubCommon.h"
- class CMoLineMgr
- {
- public:
- CMoLineMgr(Win32Tools::CMemoryManager* pMemMgr);
- virtual ~CMoLineMgr();
- public:
- void AddMemLine(CMemLine*& pMoLine);
- void MoveFirst(); // 移动到第一个
- bool GetMoLine(CMoLine*& pMoLine); // 循环获取 MO
- size_t GetSize();
- private:
- Win32Tools::CMemoryManager* m_pMemMgr;
- CMoLine m_BeginMoLine; // 自下一个开始有效
- CMoLine* m_pAddMoLine; // 添加 MO 的专用游标
- CMoLine* m_pReadMoLine; // 读取 MO 的专用游标
- size_t m_iTableCnt;
- };
- #endif
- #include "stdafx.h"
- #include "MoLineMgr.h"
- CMoLineMgr::CMoLineMgr(Win32Tools::CMemoryManager* pMemMgr)
- : m_pMemMgr(pMemMgr)
- , m_pAddMoLine(NULL)
- , m_pReadMoLine(NULL)
- , m_iTableCnt()
- {
- m_pAddMoLine = &m_BeginMoLine;
- }
- CMoLineMgr::~CMoLineMgr()
- {
- }
- void CMoLineMgr::AddMemLine(CMemLine*& pMemLine)
- {
- if(pMemLine == NULL)
- return;
- CMoLine* pNew = (CMoLine*)m_pMemMgr->GetMemory(sizeof(CMoLine));
- pNew = new (pNew) CMoLine;
- pNew->m_pMemLine = pMemLine;
- m_pAddMoLine->m_pNextMoLine = pNew;
- m_pAddMoLine = pNew;
- ++m_iTableCnt;
- }
- size_t CMoLineMgr::GetSize(void)
- {
- return m_iTableCnt;
- }
- void CMoLineMgr::MoveFirst()
- {
- // 移动到第一个
- m_pReadMoLine = &m_BeginMoLine;
- }
- bool CMoLineMgr::GetMoLine( CMoLine*& pMoLine )
- {
- // 循环获取 MO
- if(m_pReadMoLine->m_pNextMoLine == NULL)
- {
- pMoLine = NULL;
- return false;
- }
- else
- {
- pMoLine = m_pReadMoLine->m_pNextMoLine;
- m_pReadMoLine = m_pReadMoLine->m_pNextMoLine;
- return true;
- }
- }
CMoLineMgr的更多相关文章
随机推荐
- Java的BIO,NIO,AIO
Java中的IO操作可谓常见.在Java的IO体系中,常有些名词容易让人困惑不解.为此,先通俗地介绍下这些名词. 1 什么是同步? 2 什么是异步? 3 什么是阻塞? 4 什么是非阻塞? 5 什么是同 ...
- C#+TaskScheduler(定时任务)实现定时自动下载
C# /TaskScheduler /定时任务 /定时自动下载 3410 实现原理,客户是广电,在广电服务器创建一个FTP目录,然后每天自动从卫星上自动更新节目列表, 然后功能就是要每天定点一个时间自 ...
- IDEA配置toString方法
1.toString JSON带父类toString public java.lang.String toString() { final java.lang.StringBuilder sb = n ...
- 两周撸一个掘金微信小程序
利益相关 无 声明 这并不是掘金官方小程序(貌似没有搜到掘金 APP 对应的官方小程序),完全为第三者开发者开发,仅用于学习交流,禁止用于其他用途.若要使用官方正版,可访问掘金 官方网站,或下载掘金官 ...
- [BZOJ4942][Noi2017]整数 线段树+压位
用线段树来模拟加减法过程,维护连续一段中是否全为0/1. 因为数字很大,我们60位压一位来处理. #include<iostream> #include<cstring> #i ...
- 抽象工厂模式(Abstract Factory)C#实例
抽象工厂模式(Abstract Factory)C#实例 本文出处http://www.dofactory.com/net/abstract-factory-design-pattern 一.场景描述 ...
- NBUT 1221 Intermediary
最短路,三进制状态压缩. $dis[i][j]$表示到$i$节点,每个中介用了几次的情况下的最小花费,跑最短路即可. #include<cstdio> #include<cstrin ...
- 洛谷P3435 [POI2006]OKR-Period of Words [KMP]
洛谷传送门,BZOJ传送门 OKR-Period of Words Description 一个串是有限个小写字符的序列,特别的,一个空序列也可以是一个串. 一个串P是串A的前缀, 当且仅当存在串B, ...
- canconfig 移植记录
can 在Linux 里面是作为一个网络设备存在的,记录一下 canconfig 移植过程. 一. 下载 canutils 和 libsocketcan libsocketcan 地址: http:/ ...
- redis_NoSql入门概述
一.为什么要使用Nosql 今天我们可以通过第三方平台(如:google,facebook)可以很容易的访问和抓取数据.用户的个人信息,社交网络,地理位置,用户生成的数据和用户操作日志已经成倍的增加. ...