From 88708cffa15662dcd2755fce699112d24a10a087 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Wed, 30 May 2012 17:27:49 +0000 Subject: update for zlib & FreeImage git-svn-id: http://svn.miranda-ng.org/main/trunk@238 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- plugins/FreeImage/Source/CacheFile.h | 184 +++++++++++++++++------------------ 1 file changed, 92 insertions(+), 92 deletions(-) (limited to 'plugins/FreeImage/Source/CacheFile.h') diff --git a/plugins/FreeImage/Source/CacheFile.h b/plugins/FreeImage/Source/CacheFile.h index 50df26f4f1..a1e5e782c9 100644 --- a/plugins/FreeImage/Source/CacheFile.h +++ b/plugins/FreeImage/Source/CacheFile.h @@ -1,92 +1,92 @@ -// ========================================================== -// Multi-Page functions -// -// Design and implementation by -// - Floris van den Berg (flvdberg@wxs.nl) -// -// This file is part of FreeImage 3 -// -// COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTY -// OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES -// THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE -// OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED -// CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT -// THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY -// SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL -// PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER -// THIS DISCLAIMER. -// -// Use at your own risk! -// ========================================================== - -#ifndef CACHEFILE_H -#define CACHEFILE_H - -// ---------------------------------------------------------- - -#include "FreeImage.h" -#include "Utilities.h" - -// ---------------------------------------------------------- - -static const int CACHE_SIZE = 32; -static const int BLOCK_SIZE = (64 * 1024) - 8; - -// ---------------------------------------------------------- - -#ifdef _WIN32 -#pragma pack(push, 1) -#else -#pragma pack(1) -#endif // _WIN32 - -struct Block { - unsigned nr; - unsigned next; - BYTE *data; -}; - -#ifdef _WIN32 -#pragma pack(pop) -#else -#pragma pack() -#endif // _WIN32 - -// ---------------------------------------------------------- - -class CacheFile { - typedef std::list PageCache; - typedef std::list::iterator PageCacheIt; - typedef std::map PageMap; - typedef std::map::iterator PageMapIt; - -public : - CacheFile(const std::string filename, BOOL keep_in_memory); - ~CacheFile(); - - BOOL open(); - void close(); - BOOL readFile(BYTE *data, int nr, int size); - int writeFile(BYTE *data, int size); - void deleteFile(int nr); - -private : - void cleanupMemCache(); - int allocateBlock(); - Block *lockBlock(int nr); - BOOL unlockBlock(int nr); - BOOL deleteBlock(int nr); - -private : - FILE *m_file; - std::string m_filename; - std::list m_free_pages; - PageCache m_page_cache_mem; - PageCache m_page_cache_disk; - PageMap m_page_map; - int m_page_count; - Block *m_current_block; - BOOL m_keep_in_memory; -}; - -#endif // CACHEFILE_H +// ========================================================== +// Multi-Page functions +// +// Design and implementation by +// - Floris van den Berg (flvdberg@wxs.nl) +// +// This file is part of FreeImage 3 +// +// COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTY +// OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES +// THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE +// OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED +// CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT +// THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY +// SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL +// PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER +// THIS DISCLAIMER. +// +// Use at your own risk! +// ========================================================== + +#ifndef CACHEFILE_H +#define CACHEFILE_H + +// ---------------------------------------------------------- + +#include "FreeImage.h" +#include "Utilities.h" + +// ---------------------------------------------------------- + +static const int CACHE_SIZE = 32; +static const int BLOCK_SIZE = (64 * 1024) - 8; + +// ---------------------------------------------------------- + +#ifdef _WIN32 +#pragma pack(push, 1) +#else +#pragma pack(1) +#endif // _WIN32 + +struct Block { + unsigned nr; + unsigned next; + BYTE *data; +}; + +#ifdef _WIN32 +#pragma pack(pop) +#else +#pragma pack() +#endif // _WIN32 + +// ---------------------------------------------------------- + +class CacheFile { + typedef std::list PageCache; + typedef std::list::iterator PageCacheIt; + typedef std::map PageMap; + typedef std::map::iterator PageMapIt; + +public : + CacheFile(const std::string filename, BOOL keep_in_memory); + ~CacheFile(); + + BOOL open(); + void close(); + BOOL readFile(BYTE *data, int nr, int size); + int writeFile(BYTE *data, int size); + void deleteFile(int nr); + +private : + void cleanupMemCache(); + int allocateBlock(); + Block *lockBlock(int nr); + BOOL unlockBlock(int nr); + BOOL deleteBlock(int nr); + +private : + FILE *m_file; + std::string m_filename; + std::list m_free_pages; + PageCache m_page_cache_mem; + PageCache m_page_cache_disk; + PageMap m_page_map; + int m_page_count; + Block *m_current_block; + BOOL m_keep_in_memory; +}; + +#endif // CACHEFILE_H -- cgit v1.2.3