#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的更多相关文章

随机推荐

  1. C/C++——库函数strcpy和strdup比较

    版权声明:原创文章,禁止转载. 1. strcpy 原型: extern char *strcpy(char *dest,char *src); 用法: #include <string.h&g ...

  2. Effective C++笔记(四):设计与声明

    参考:http://www.cnblogs.com/ronny/p/3747186.html 条款18:让接口容易被正确使用,不易被误用 1,好的接口很容易被正确使用,不容易被误用.你应该在你的所有接 ...

  3. Jmeter中的逻辑控制器(四)

    Jmeter中的逻辑控制器 (Logic Controller) [线程组]右键—>[添加]—>[逻辑控制器] 简单控制器(Simple Controller ) 没有特殊功能,目的是形成 ...

  4. 简单优化:Zipalign

    Android SDK中包含一个“zipalign”的工具,它能够对打包的应用程序进行优化.在你的应用程序上运行zipalign,使得在运行时Android与应用程序间的交互更加有效率.因此,这种方式 ...

  5. mongo备份&恢复

    1.备份数据: $mongodump -h 127.0.0.1 -u traderaccount -p kasumi -d traderaccount -o "/traderaccount& ...

  6. Android Webview中解决H5的音视频不能自动播放的问题

    在开发webview的时候,当加载有声音的网页的时候,声音不会自动播放, 解决方法:在webview中调用js方法.这个方法需要在webview的setWebViewClient方法之后在onPage ...

  7. JS模块化规范AMD之RequireJS

    1.基本操作 加载 JavaScript 文件(入口文件) RequireJS以一个相对于baseUrl的地址来加载所有的代码 <script data-main="scripts/m ...

  8. 【58沈剑架构系列】细聊分布式ID生成方法

    一.需求缘起 几乎所有的业务系统,都有生成一个记录标识的需求,例如: (1)消息标识:message-id (2)订单标识:order-id (3)帖子标识:tiezi-id 这个记录标识往往就是数据 ...

  9. c++ primer 2 变量和基本类型

    2.1 基本内置类型 基本内置类型是C++“自带”的类型,区别于标准库定义的类型.使用时不需要应用标准库就可以使用,我们可以理解为数字型有下面这些 整形:就是整数或者是没有小数位的数.它包括bool( ...

  10. logstash通过tcp收集日志

    (1)标准输入输出tcp模块 1.修改配置文件 #vim /etc/logstash/conf.d/tcp.conf input { tcp { port => "5600" ...