Guiliani  Version 2.6 revision 7293 (documentation build 12)
GUIImageCacheImpl.h
1/*
2* Copyright (C) TES Electronic Solutions GmbH,
3* All Rights Reserved.
4* Contact: info@guiliani.de
5*
6* This file is part of the Guiliani HMI framework
7* for the development of graphical user interfaces on embedded systems.
8*/
9
10#if !defined GUIIMAGECACHEIMPL_H
11#define GUIIMAGECACHEIMPL_H
12
13#include "GUIImageResource.h"
14#include "GUIImageCache.h"
15
17
23{
24 friend class CGUIImageCache;
25
26public:
27
28#ifdef GUILIANI_STREAM_GUI
34 eC_Bool ReadCacheSettingsFromFile(const eC_String& rkPath);
35#endif //GUILIANI_STREAM_GUI
36
40 eC_UInt GetCurrentMemoryUsage() const;
41
45 eC_UInt GetFreeListSize() const;
46
50 eC_UInt GetUsedListSize() const;
51
56 eC_UInt GetImageSize(const ImageResource_t& eImageID) const;
57
58protected:
66
69
76 eC_Bool FreeSpace(eC_UInt uiSpaceToFree);
77
86 eC_Bool LoadImg(const eC_String& psPath, const ImageResource_t& eImageID);
87
96 eC_Bool PreloadImg(const eC_String& psPath, const ImageResource_t& eImageID);
97
103 eC_Bool UnloadSpecificImage(const ImageResource_t& eImageID);
104
109 void MarkAsFree(const ImageResource_t& eImageID);
110
115 void MarkAsUsed(const ImageResource_t& eImageID);
116
125
127
128private:
132 eC_UInt UnloadImage();
133
138 void AddToFreeList(const ImageResource_t& eImageID);
139
144 void AddToUsedList(const ImageResource_t& eImageID);
145
149 void RemoveFromFreeList(const ImageResource_t& eImageID);
150
154 void RemoveFromUsedList(const ImageResource_t& eImageID);
155
159 ImageResource_t m_eLastAccessedImage;
160
161#ifdef GUI_IMAGECACHE_DEBUG
162 eC_UInt m_uiMaxCacheSize;
163#endif
164};
165
166#endif //GUIIMAGECACHEIMPL_H
Helper Macros in Guiliani
ImageResource_t
Enumeration of image resource ids.
Definition: GUIImageResource.h:126
Image cache base class.
Definition: GUIImageCache.h:106
Implementation of Cache for Guiliani image resources.
Definition: GUIImageCacheImpl.h:23
void MarkAsFree(const ImageResource_t &eImageID)
eC_Bool ReadCacheSettingsFromFile(const eC_String &rkPath)
void CopyCacheContents(CGUIImageCacheReplacementPolicy *pOldPolicy, CGUIImageCacheReplacementPolicy *pNewPolicy)
eC_Bool PreloadImg(const eC_String &psPath, const ImageResource_t &eImageID)
eC_UInt GetCurrentMemoryUsage() const
void MarkAsUsed(const ImageResource_t &eImageID)
eC_Bool LoadImg(const eC_String &psPath, const ImageResource_t &eImageID)
void NotifyImageAccessInternal(const ImageResource_t &eImageID)
eC_Bool UnloadSpecificImage(const ImageResource_t &eImageID)
eC_UInt GetFreeListSize() const
eC_Bool FreeSpace(eC_UInt uiSpaceToFree)
eC_UInt GetUsedListSize() const
CGUIImageCacheImpl(eC_UInt uiCacheSizeLimit, ReplacementPolicyType_t eUsed, ReplacementPolicyType_t eFree)
eC_UInt GetImageSize(const ImageResource_t &eImageID) const
~CGUIImageCacheImpl()
Destructor.
Replacement manager for the image cache.
Definition: GUIImageCacheReplacementManager.h:23
Abstract replacement policy for use with the Guiliani image cache.
Definition: GUIImageCacheReplacementPolicy.h:34
ReplacementPolicyType_t
Definition: GUIImageCacheReplacementPolicy.h:22