亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? eb_cachemanager.h

?? 這是法國Kaleido公司提供了一個手機mmi設計平臺
?? H
字號:
/***************************************************************************
CacheManager.h  -  An generic cache manager for Kaleido
----------------
begin                : Tue Feb 07 2006
copyright            : (C) 2003-2006 by DigitalAirways
email                : info@digitalairways.com
***************************************************************************/

/*
* Copyright (c) 2005-2006 DigitalAirways, sarl. All Rights Reserved.
*
* This software is the confidential and proprietary information of
* DigitalAirways, sarl. ("Confidential Information").  You shall not
* disclose such Confidential Information and shall use it only in
* accordance with the terms of the license agreement you entered into
* with DigitalAirways.
* A copy of this license is included in the licence.txt file included
* on this software package.
*
*
***************************************************************************
*
*/


#ifndef __CACHEMANAGER__
#define __CACHEMANAGER__


#include "EB_Utils.h"


#define CACHEDOBJECT_STATUS_EMPTY		0x00000000
#define CACHEDOBJECT_STATUS_KEYSTRING	0x00000010

typedef void (*objectDestructor)(void* object);


/*
* name: is owned by the cachedObject that must free it when it is not used anymore
* key:  if (status & CACHEDOBJECT_STATUS_KEYSTRING), "key" is a string that is owned 
*   by the cachedObject that must free it when it is not used anymore.
*       if !(status & CACHEDOBJECT_STATUS_KEYSTRING), "key" is a long
*/
class KREBDLIBS_API CachedObject {
private:
	unsigned int   status ;
	char*          key;
	void*          data;
	unsigned int   size;      // Size of the stored object
	unsigned int   extraSize; // Size of the data referenced by the object (explicitely provided, may be false...)
	KALEIDO_TIME_TYPE  lastAccess;
	unsigned int   references ;
	objectDestructor dtor ;
private:
	/*
	*
	*/
	void initContent();
public:
	DEFINE_NEW(CachedObject);
	DEFINE_DELETE(CachedObject);
	CachedObject();
	~CachedObject();
	void* getData();
	/*
	*
	*/
	void flushContent();
	/*
	* The ownership of newData is transferred to the object
	* A new reference on the new content is automatically created.
	*/
	void setContent(KALEIDO_TIME_TYPE  newLastAccess, int newKey, void* newData, int newSize, int newExtraSize, objectDestructor newDtor);
	/*
	* The ownership of the string newKey is not transferred to the object that duplicates its content.
	* The ownership of newData is transferred to the object
	* A new reference on the new content is automatically created.
	*/
	void setContent(KALEIDO_TIME_TYPE  newLastAccess, char* newKey, void* newData, int newSize, int newExtraSize, objectDestructor newDtor);
	/*
	*
	*/
	boolean hasSameKey(int newKey);
	/*
	*
	*/
	boolean hasSameKey(char* newKey);
	/*
	* Return the number of references on the object, or -1 if the objet has no content.
	* If the returned value is >=0, newLastAccess is updated.
	*/
	int getReferences(KALEIDO_TIME_TYPE  *newLastAccess=NULL);
	/*
	* Return the size of this object, or 0 if the object has currently no content.
	*/
	int getSize(boolean withExtraSize);
	/*
	* Return a pointer on the current content and update newSize if it is provided.
	*/
	void* createReference(KALEIDO_TIME_TYPE  newLastAccess, int *newSize=NULL);
	/*
	* Return the number of references.
	*/
	int releaseReference(KALEIDO_TIME_TYPE  newLastAccess, boolean flushIfUnreferenced);
#ifdef DEV_DEBUG
	/*
	* 
	*/
	void dump(KALEIDO_TIME_TYPE  newLastAccess, int index);
#endif // def DEV_DEBUG
};


class KREBDLIBS_API ObjectPool {
private:
	CachedObject** objects;
	int objectNum ; // Number of slots in this pool
	int cacheMaxSize;  // Maximum size usable by the pool
	int cacheUsedSize; // Size currently used by the pool
	int cacheRefSize;  // Size currently referenced by the pool
	int cacheUnstoredNum;  // Number of objects that have not been stored because there was not enough free room
	int cacheUnstoredSize; // Size of objects that have not been stored because there was not enough free room
private:
	/*
	* This function tries to find (and return) a free or
	* a recyclable object.
	*/
	CachedObject* findFreeSlot(void);
	/*
	* This function returns the oldest unreferenced non-empty slot 
	* or NULL if it does not exist.
	*/
	CachedObject* getOldestSlot(void);
	/*
	* This function find a slot to store a new object whose
	* size is defined.
	*/
	CachedObject* findFreeObject(int sizeToFind);
	/*
	*
	*/
	CachedObject* findObject(int key);
	/*
	*
	*/
	CachedObject* findObject(char* key);
	/*
	*
	*/
	CachedObject* findObjectByData(void* data);
	/*
	*
	*/
	int countUsedSlots(void);
public:
	DEFINE_NEW(ObjectPool);
	DEFINE_DELETE(ObjectPool);
	ObjectPool(int newNum, int newSize=0);
	~ObjectPool();
	//
	void* getObjectByIndex(int index);
	/*
	* Try to find the key in the pool. If it is found, a pointer on the data bloc is returned
	* and an additional reference on the object is created.
	* If it is not found, it returns NULL.
	*/
	void* getFromPool(KALEIDO_TIME_TYPE currentTime, int key  , int *size=NULL);
	void* getFromPool(KALEIDO_TIME_TYPE currentTime, char* key, int *size=NULL);
	/*
	* Try to find the key or data in the pool. If it is found, a reference on the object is removed.
	* Return the number of current references on the same key, or -1 if the objet is  not found.
	*/
	int releaseFromPool(KALEIDO_TIME_TYPE currentTime      , CachedObject* cached, boolean flushIfUnreferenced);
	int releaseFromPool(KALEIDO_TIME_TYPE currentTime      , int key             , boolean flushIfUnreferenced);
	int releaseFromPool(KALEIDO_TIME_TYPE currentTime      , char* key           , boolean flushIfUnreferenced);
	int releaseFromPoolByData(KALEIDO_TIME_TYPE currentTime, void* data          , boolean flushIfUnreferenced);
	/*
	* Store the data in the pool. 
	* WARNING: we don't check that the key is not already stored in the pool.
	* Return true if and only if the system has been able to store the data.
	*/
	boolean pushInPool(KALEIDO_TIME_TYPE  newLastAccess, int newKey  , void* newData, int newSize, int newExtraSize, objectDestructor newDtor=NULL);
	boolean pushInPool(KALEIDO_TIME_TYPE  newLastAccess, char* newKey, void* newData, int newSize, int newExtraSize, objectDestructor newDtor=NULL);
	/*
	*
	*/
	void setMaxSize(int newCacheMaxSize);
	int getMaxSize(void)  { return cacheMaxSize; }
	int getUsedSize(void) { return cacheUsedSize; }
	int getRefSize(void)  { return cacheRefSize; }
	/*
	* This function flushes all the unreferenced objects.
	*/
	void pack(void);
#ifdef DEV_DEBUG
	/*
	* 
	*/
	void dump(KALEIDO_TIME_TYPE  newLastAccess);
#endif // def DEV_DEBUG
} ;



#endif // ndef __CACHEMANAGER__

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
蜜臀av国产精品久久久久| 日本一区二区综合亚洲| 视频一区视频二区在线观看| 欧美日韩在线综合| 五月天久久比比资源色| 欧美人伦禁忌dvd放荡欲情| 丝袜美腿亚洲综合| 欧美成人女星排名| 久久久久久久久久久久久久久99 | 欧美日韩中文字幕精品| 亚洲成人av免费| 日韩欧美国产三级| 国产不卡高清在线观看视频| 国产精品美女久久久久久久久| 色婷婷香蕉在线一区二区| 亚洲动漫第一页| 精品久久久久久久久久久久包黑料 | 成人午夜激情影院| 一区二区三区在线播| 欧美一区二区三区播放老司机| 国产一区二区三区免费在线观看| 中文字幕中文字幕在线一区| 欧美日韩不卡视频| 国内精品视频一区二区三区八戒| 久久一二三国产| 99久久久无码国产精品| 亚洲电影一级黄| 久久综合久久综合久久综合| 91女神在线视频| 蜜臀久久99精品久久久久宅男| 青青草国产精品97视觉盛宴| 久久久综合九色合综国产精品| 91免费版在线| 久久99热99| 亚洲精品午夜久久久| 亚洲精品在线观看网站| 欧洲精品一区二区三区在线观看| 美国十次综合导航| 亚洲精品免费视频| 久久精品视频在线免费观看| 欧美三级日韩三级国产三级| 久久机这里只有精品| 一区二区三区产品免费精品久久75| 日韩美女天天操| 色天天综合色天天久久| 国产一区二区三区日韩| 午夜伦理一区二区| 亚洲日本电影在线| 久久男人中文字幕资源站| 欧美三级三级三级| eeuss鲁片一区二区三区| 免费不卡在线视频| 亚洲h在线观看| 亚洲视频香蕉人妖| 国产亚洲一区二区三区四区 | 欧美精品第一页| 91亚洲国产成人精品一区二区三| 激情综合五月婷婷| 亚洲高清在线视频| 亚洲免费毛片网站| 国产精品国产三级国产aⅴ中文| 精品日韩欧美在线| 欧美一激情一区二区三区| 在线观看日韩国产| 91老师片黄在线观看| www.爱久久.com| 成人激情电影免费在线观看| 国产黄色精品视频| 国产伦精品一区二区三区免费| 日韩国产精品久久久| 午夜免费久久看| 天天综合色天天综合色h| 亚洲国产三级在线| 亚洲一级片在线观看| 亚洲激情av在线| 亚洲欧美日韩一区二区三区在线观看| 欧美激情一区在线观看| 欧美国产日韩精品免费观看| 欧美国产1区2区| 中文字幕二三区不卡| 中文字幕欧美三区| 中文字幕在线观看不卡视频| 国产精品视频一二| 国产精品久久久久久久久动漫| 欧美韩国日本综合| 亚洲婷婷国产精品电影人久久| 日韩一区欧美一区| 亚洲综合无码一区二区| 亚洲国产精品自拍| 无码av免费一区二区三区试看| 午夜视频一区二区| 蜜桃视频第一区免费观看| 精品一区二区三区在线播放 | 成人午夜视频网站| 高清不卡一区二区在线| proumb性欧美在线观看| 91国在线观看| 欧美日韩精品福利| 精品免费日韩av| 国产精品毛片久久久久久| 国产精品乱码久久久久久| 亚洲美女偷拍久久| 国产白丝精品91爽爽久久| 99精品桃花视频在线观看| 在线欧美日韩国产| 欧美一区二区观看视频| 国产日产亚洲精品系列| 一区二区三区日韩欧美精品| 视频在线观看国产精品| 国产精品资源站在线| www.色综合.com| 91精品国产全国免费观看| 欧美极品另类videosde| 亚洲电影欧美电影有声小说| 国产自产高清不卡| 91麻豆高清视频| 欧美刺激脚交jootjob| 国产精品人成在线观看免费| 亚洲午夜免费电影| 国产精品一区一区| 欧美写真视频网站| 国产亚洲精品超碰| 亚洲综合网站在线观看| 国产乱码精品一区二区三区忘忧草| jlzzjlzz欧美大全| 亚洲精品国产a久久久久久| 日本不卡不码高清免费观看| 成人黄色电影在线| 欧美色综合久久| 国产亚洲欧美一区在线观看| 亚洲一区二区三区激情| 国产乱人伦偷精品视频免下载 | 丰满少妇久久久久久久| 91精品国产综合久久精品性色| 国产精品国产三级国产普通话99| 美女网站色91| 欧美亚日韩国产aⅴ精品中极品| 久久精品人人做人人爽97| 亚洲成精国产精品女| 99久久99久久久精品齐齐| 久久婷婷色综合| 日日欢夜夜爽一区| 色综合中文字幕| 欧美国产欧美综合| 国产在线播放一区三区四| 欧美三级电影网| 亚洲美女区一区| 成人av资源在线观看| 精品捆绑美女sm三区| 亚洲3atv精品一区二区三区| 色综合中文字幕| 日韩码欧中文字| 大胆亚洲人体视频| 久久精品人人做人人爽人人| 麻豆精品一区二区三区| 欧美日韩高清不卡| 亚洲一区二区中文在线| 色综合久久久久久久久| 亚洲视频在线一区观看| 不卡电影免费在线播放一区| 国产欧美日韩在线视频| 国产在线视频不卡二| 欧美videofree性高清杂交| 日日夜夜精品免费视频| 欧美日韩在线不卡| 亚洲第一精品在线| 91精品国产品国语在线不卡| 日韩专区欧美专区| 8x8x8国产精品| 蜜臀久久99精品久久久久宅男| 欧美一区二区三区四区久久| 日韩在线播放一区二区| 欧美一区二区三区免费视频| 日韩精品一二三四| 亚洲色图在线视频| 成人ar影院免费观看视频| 国产精品进线69影院| 99久久精品免费看国产| 亚洲激情五月婷婷| 欧美片在线播放| 精品中文av资源站在线观看| 精品国产99国产精品| 国产精品正在播放| 国产精品久久久久久久久果冻传媒| 99精品热视频| 亚洲国产日韩在线一区模特| 91精品欧美综合在线观看最新| 日本成人在线网站| 精品国产乱码久久久久久浪潮 | 91麻豆精品国产自产在线观看一区| 婷婷久久综合九色国产成人| 欧美电影免费观看高清完整版| 国内外成人在线视频| 中文字幕精品三区| 欧美特级限制片免费在线观看| 免费成人你懂的| 国产精品人人做人人爽人人添 | 日韩欧美综合一区| 丰满少妇在线播放bd日韩电影| 中文字幕佐山爱一区二区免费|