⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mdatabase.h

📁 一个自行开发的内存数据管理的包
💻 H
字号:
#ifndef __MDatabase_h__
#define __MDatabase_h__

#include <vector>
#include <string>
#include <stdlib.h>
#include "MdbQuery.h"
#include "MdbApi.h"

//const char *szPoolName = "MDB_POOL";
//const char *szLockName = "MDB_LOCK";
//const char *szDictName = "MDB_DICT";
//const char *szProcName = "MDB_PROC";
//const char *szDictLatchName = "MDB_DICT_LATCH";
//const char *szProcLatchName = "MDB_PROC_LATCH";

#ifdef __HPUX_MDB_
#define MDB_MAP_BASE_ADDR	0
#else
#define MDB_MAP_BASE_ADDR	ACE_DEFAULT_BASE_ADDR
#endif

using namespace std;
class CMDatabase:public CDatabase
{
public:
CMDatabase(const char *szDbName);
virtual ~CMDatabase();
CMdbQuery *queryCreate(SCreateTblPara *psCreateTblPara,SCreateIdxesPara *psCreateIdxesPara);
void queryDrop(const char *szTableName);
CMdbQuery *querySelectForUpdate(SSelectPara *psSelectPara);
CMdbQuery *querySelect(SSelectPara *psSelectPara);
void queryDelete(SDeletePara *psDeletePara);
void queryInsert(SInsertPara *psInsertPara);
void queryUpdate(SUpdatePara *psUpdatePara);
void checkForUnLock();
private:
void getSysProcIds(vector<pid_t> *pcProcIds);
bool checkProcExist(pid_t nPid,const vector<pid_t> *pcProcIds);
const char *getPoolName(const char *szDbName) { m_szPoolName = "MDB_"; m_szPoolName += szDbName; m_szPoolName += "_POOL"; return m_szPoolName.c_str();}
const char *getLockName(const char *szDbName) { m_szLockName = "MDB_"; m_szLockName += szDbName; m_szLockName += "_LOCK"; return m_szLockName.c_str();}
const char *getDictName(const char *szDbName) { m_szDictName = "MDB_"; m_szDictName += szDbName; m_szDictName += "_DICT"; return m_szDictName.c_str();}
const char *getProcName(const char *szDbName) { m_szProcName = "MDB_"; m_szProcName += szDbName; m_szProcName += "_PROC"; return m_szProcName.c_str();}
const char *getDictLatchName(const char *szDbName) { m_szDictLatchName = "MDB_";m_szDictLatchName += szDbName; m_szDictLatchName += "_DICT_LATCH"; return m_szDictLatchName.c_str();}
const char *getProcLatchName(const char *szDbName) { m_szProcLatchName = "MDB_";m_szProcLatchName += szDbName; m_szProcLatchName += "_PROC_LATCH"; return m_szProcLatchName.c_str();}
const char *getPoolName() { return m_szPoolName.c_str();}
const char *getLockName() { return m_szLockName.c_str();}
const char *getDictName() { return m_szDictName.c_str();}
const char *getProcName() { return m_szProcName.c_str();}
const char *getDictLatchName() { return m_szDictLatchName.c_str();}
const char *getProcLatchName() { return m_szProcLatchName.c_str();}
off_t getPoolSize() { char *p; p = getenv("MDB_POOL_SIZE"); return (off_t) ((p == NULL)? 200*1024*1024:atol(p)); }
private:
string m_szPoolName;
string m_szLockName;
string m_szDictName;
string m_szProcName;
string m_szDictLatchName;
string m_szProcLatchName;
//ACE_Shared_Memory_Pool_Options m_cPoolOpt;
MALLOC::MEMORY_POOL_OPTIONS m_cPoolOpt;
MALLOC   m_cMalloc;
ACE_Process_Mutex  m_cDictLatch;
ACE_Process_Mutex  m_cProcLatch;
CMdbDict m_cMdbDict;
pid_t m_nMyPid;
ACE_Based_Pointer<CProcNode> *m_ppsProcList;
};

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -