47 lines
853 B
C++
47 lines
853 B
C++
#ifndef _CACHE_HPP_
|
|
#define _CACHE_HPP_
|
|
#include <mdiwin/windows.hpp>
|
|
#include <mdiwin/vector.hpp>
|
|
|
|
template <class K,class T,size_t N>
|
|
class Cache
|
|
{
|
|
public:
|
|
Cache(void);
|
|
~Cache();
|
|
WORD locateItem(const K &someKeyItem,T &someDataItem);
|
|
void insertItem(const K &someKeyItem,const T &someDataItem);
|
|
private:
|
|
Vector<T> mDataItem;
|
|
Vector<K> mKeyItem;
|
|
LONG mEntries;
|
|
};
|
|
|
|
template <class K,class T,size_t N>
|
|
inline
|
|
Cache<K,T,N>::Cache(void)
|
|
: mEntries(0L)
|
|
{
|
|
mDataItem.size(N);
|
|
mKeyItem.size(N);
|
|
}
|
|
|
|
template <class K,class T,size_t N>
|
|
inline
|
|
Cache<K,T,N>::~Cache()
|
|
{
|
|
}
|
|
|
|
template <class K,class T,size_t N>
|
|
inline
|
|
void Cache<K,T,N>::insertItem(const K &someKeyItem,const T &someDataItem)
|
|
{
|
|
if(mEntries>=N)mEntries=0L;
|
|
mKeyItem[mEntries]=someKeyItem;
|
|
mDataItem[mEntries]=someDataItem;
|
|
mEntries++;
|
|
}
|
|
#include <mdiwin/cache.tpp>
|
|
#endif
|
|
|