cache.h

来自「Windows 图形编程 书籍」· C头文件 代码 · 共 64 行

H
64
字号
#pragma once

//-----------------------------------------------------------------------------------//
//              Windows Graphics Programming: Win32 GDI and DirectDraw               //
//                             ISBN  0-13-086985-6                                   //
//                                                                                   //
//  Written            by  Yuan, Feng                             www.fengyuan.com   //
//  Copyright (c) 2000 by  Hewlett-Packard Company                www.hp.com         //
//  Published          by  Prentice Hall PTR, Prentice-Hall, Inc. www.phptr.com      //
//                                                                                   //
//  FileName   : cache.h						                                     //
//  Description: KCache class: remove duplication			                         //
//  Version    : 1.00.000, May 31, 2000                                              //
//-----------------------------------------------------------------------------------//

class KSignature
{
	long         m_size;
	const void * m_data;
	long		 m_seq;

public:

	KSignature()
	{
		m_size = 0;
		m_data = NULL;
		m_seq  = 0;
	}

	long Match(long size, const void * data)
	{
		if ( (m_size==size) && (memcmp(m_data, data, size)==0) )
			return m_seq;
		else
			return -1;
	}

	void Set(long size, const void * data, long seq)
	{
		m_size = size;
		m_data = data;
		m_seq  = seq;
	}
};


class KCache  
{
	typedef enum { CacheSize = 64 };

	KSignature m_Cache[CacheSize];
	long	   m_total;

public:
	KCache()
	{
		m_total = 0;
	}

	bool Match(long size, const void * data, long & rslt);
};

⌨️ 快捷键说明

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