📄 memory.h
字号:
// Memory.h: interface for the CMemory class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_MEMORY_H__222B8293_0682_4FB0_AF66_F884F7AD85E2__INCLUDED_)
#define AFX_MEMORY_H__222B8293_0682_4FB0_AF66_F884F7AD85E2__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "DEF.h"
#include "Block.h"
#include "BTNODE.h"
#include "IndexFile.h"
#include "HashBlock.h"
class CBlock;
class CDatabaseFile;
class CHashBlock;
typedef struct File_Item
{
CDatabaseFile *cdbf;
File_Item *next;
File_Item()
{
cdbf=NULL;
next=NULL;
}
File_Item(CDatabaseFile *dbf)
{
cdbf=dbf;
next=NULL;
}
}*PFile_Item,*File_table;
typedef struct Data_Block//十六字节
{
PDB db_addr;//数据库地址
CBlock *mem_addr;//内存地址
Data_Block *next;
Data_Block()
{
db_addr=DB_NULL;
mem_addr=NULL;
next=NULL;
}
Data_Block(PDB da,CBlock *ma)
{
db_addr=da;
mem_addr=ma;
next=NULL;
}
}*PData_Block,*DB_table;
typedef struct Index_Block
{
PDB db_addr;
BTNODE *mem_addr;
Index_Block *next;
Index_Block()
{
db_addr=DB_NULL;
mem_addr=NULL;
next=NULL;
}
Index_Block(PDB da,BTNODE *ma)
{
db_addr=da;
mem_addr=ma;
next=NULL;
}
}*PIndex_Block,*IDX_table;
typedef struct Hash_Block
{
PDB db_addr;
CHashBlock *mem_addr;
Hash_Block *next;
Hash_Block()
{
db_addr=NULL;
mem_addr=NULL;
next=NULL;
}
Hash_Block(PDB da,CHashBlock *hb)
{
db_addr=da;
mem_addr=hb;
next=NULL;
}
}*PHash_Block, *HB_table;
class CMemory
{
static UINT MaxHashFileID;
static DB_table dbtb;
static PData_Block lpdOld;
static unsigned short db_count;
static IDX_table ibtb;
static PIndex_Block lpiOld;
static unsigned short ib_count;
static File_table ftb;
static unsigned short f_count;
static HB_table htb;
static PHash_Block lphOld;
static unsigned short h_count;
public:
static BOOL ATODate(CString value,Date &date);
static BOOL ATOTime(CString value,Time &time);
static BOOL ATOF(CString value,float &fval);
static BOOL ATOI(CString value,int &ival);
static void DestroyHashTable();
static UINT GetHashFileID();
static CHashBlock * ReadHashBlock(PDB db_addr,UINT RcdLen,BOOL clean);
static CDatabaseFile * GetFile(UINT ID);
static void WriteBackAll();
static int GetTime();
static void DeleteID(UINT ID,BOOL mode,UINT RelationNo,BOOL FileMode=0 );
//static void DeleteFile(UINT FileNo,BOOL mode);
static PDB AllocatePDB(UINT FN,void *mem,BOOL mode);
static UINT AllocateID(BOOL mode,UINT RelationNo=0);
static BTNODE* ReadIDXBlock(PDB db_addr,unsigned short m,BYTE KeyType,WORD KeyLength
,BTNODE *source=NULL);
static CBlock * ReadDBBlock(PDB db_addr,bool view=false);
CMemory();
virtual ~CMemory();
};
#endif // !defined(AFX_MEMORY_H__222B8293_0682_4FB0_AF66_F884F7AD85E2__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -