CMGDK r49-rc2
|
缓冲区管理模板(以最终使用时间为基准) 更多...
#include <FinUseData.H>
公有成员 | |
FinUseData (int) | |
virtual | ~FinUseData () |
virtual FudItem< F, T > * | Add (const F &, const T &) |
增加一个数据 | |
virtual bool | Find (const F &, T &, bool=true) |
取得一个数据(如果没有不会自动创建) | |
virtual bool | Get (const F &, T &, bool=true) |
取得一个数据(如果没有会自动创建) | |
void | Clear () |
清除所有数据 | |
void | DeleteByFlag (const F &) |
void | DeleteByData (T &) |
bool | Update (const F &, T &) |
更新数据 | |
公有属性 | |
Property< int > | Count |
当前缓冲区数据数量 | |
Property< int > | MaxCount |
当前缓冲区最大值 | |
保护成员 | |
int | GetCount () |
int | GetMaxCount () |
virtual void | SetMaxCount (int) |
virtual bool | Create (const F &, T &) |
创建数据 | |
virtual void | Clear (const F &, T &) |
清除数据 | |
void | MoveToStart (FudItem< F, T > *) |
移动某一个数据到最前面 | |
void | Delete (FudItem< F, T > *) |
清除某一个数据 | |
void | ClearEnd () |
清除最后一个数据 | |
保护属性 | |
FudItem< F, T > * | start_item |
FudItem< F, T > * | end_item |
int | count |
int | max_count |
缓冲区管理模板(以最终使用时间为基准)
缓冲区管理模板(当缓冲区满时,将最长时间没有使用的清除)
现这个模板使用双头链表,每次添加或使用的数据会被移到链表的最前端。
这样使用率最低的数据会被存在链表的最末端,当缓冲区满时,最末端的数据将会被清除。
hgl::FinUseData< F, T >::FinUseData | ( | int | value | ) |
本类构造函数
value | 缓冲区最大数据量 |
hgl::FinUseData< F, T >::~FinUseData | ( | ) | [virtual] |
FudItem< F, T > * hgl::FinUseData< F, T >::Add | ( | const F & | flag, |
const T & | data | ||
) | [virtual] |
增加一个数据
添加一个数据
flag | 数据标识 |
data | 数据 |
void hgl::FinUseData< F, T >::Clear | ( | const F & | , |
T & | |||
) | [protected, virtual] |
清除数据
被hgl::TileBuffer重载。
void hgl::FinUseData< F, T >::Clear | ( | ) |
清除所有数据
清数所有数据
void hgl::FinUseData< F, T >::ClearEnd | ( | ) | [protected] |
清除最后一个数据
bool hgl::FinUseData< F, T >::Create | ( | const F & | , |
T & | |||
) | [protected, virtual] |
创建数据
被hgl::TileBuffer重载。
void hgl::FinUseData< F, T >::Delete | ( | FudItem< F, T > * | obj | ) | [protected] |
清除某一个数据
void hgl::FinUseData< F, T >::DeleteByData | ( | T & | data | ) |
void hgl::FinUseData< F, T >::DeleteByFlag | ( | const F & | flag | ) |
bool hgl::FinUseData< F, T >::Find | ( | const F & | flag, |
T & | data, | ||
bool | mts = true |
||
) | [virtual] |
取得一个数据(如果没有不会自动创建)
取得一个数据,在没有数据时,不自动创建数据,返回false
flag | 数据标识 |
data | 数据存放地 |
mts | 是否对数据调频 |
bool hgl::FinUseData< F, T >::Get | ( | const F & | flag, |
T & | data, | ||
bool | mts = true |
||
) | [virtual] |
取得一个数据(如果没有会自动创建)
取得一个数据,如果数据不存在,调用Create创建数据,如失败返回false
flag | 数据标识 |
data | 数据存放地 |
mts | 是否对数据动态调频 |
int hgl::FinUseData< F, T >::GetCount | ( | ) | [inline, protected] |
int hgl::FinUseData< F, T >::GetMaxCount | ( | ) | [inline, protected] |
void hgl::FinUseData< F, T >::MoveToStart | ( | FudItem< F, T > * | item | ) | [protected] |
移动某一个数据到最前面
void hgl::FinUseData< F, T >::SetMaxCount | ( | int | value | ) | [protected, virtual] |
bool hgl::FinUseData< F, T >::Update | ( | const F & | flag, |
T & | data | ||
) |
更新数据
int hgl::FinUseData< F, T >::count [protected] |
Property<int> hgl::FinUseData< F, T >::Count |
当前缓冲区数据数量
FudItem<F,T> * hgl::FinUseData< F, T >::end_item [protected] |
int hgl::FinUseData< F, T >::max_count [protected] |
Property<int> hgl::FinUseData< F, T >::MaxCount |
当前缓冲区最大值
FudItem<F,T>* hgl::FinUseData< F, T >::start_item [protected] |