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

📄 memory.h

📁 有计算机图形学、图像处理、dbms、sniffer、中游俄罗斯外挂、othello、遗传算法、舌苔分析等程序。
💻 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 + -