• CMoLineMgr


    #ifndef __E3GLOGOBJECTDB_H__ 
    #define __E3GLOGOBJECTDB_H__ 
      
    #include "PubCommonSingleton.h" 
    #include "PubCommonMemoryManager.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(0) 
    { 
        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; 
        } 
    } 
  • 相关阅读:
    Spring_Bean的配置方式
    Nginx Ingress设置账号密码
    2.2.4 加减运算与溢出
    2.2.5-2 补码乘法
    2.2.3 移位运算
    flask钩子函数
    flask的cookie、session
    循环冗余校验码
    海明校验码
    python中的 __call__()
  • 原文地址:https://www.cnblogs.com/hongjiumu/p/3588270.html
Copyright © 2020-2023  润新知