48 lines
560 B
C++
48 lines
560 B
C++
#ifndef CACHEDDATAH
|
|
#define CACHEDDATAH
|
|
|
|
template <class DataType>
|
|
class CachedData
|
|
{
|
|
public:
|
|
CachedData() : cached(false)
|
|
{
|
|
}
|
|
CachedData(DataType _data) : cached(true), data(_data)
|
|
{
|
|
}
|
|
operator DataType()
|
|
{
|
|
return data;
|
|
}
|
|
|
|
bool IsCached()
|
|
{
|
|
return cached;
|
|
}
|
|
void ClearCache()
|
|
{
|
|
cached=false;
|
|
}
|
|
DataType *operator &()
|
|
{
|
|
if (cached)
|
|
return &data;
|
|
else
|
|
return 0;
|
|
}
|
|
|
|
template <class FromType>
|
|
bool operator =(FromType from)
|
|
{
|
|
data = from;
|
|
cached=true;
|
|
return cached;
|
|
}
|
|
|
|
private:
|
|
bool cached;
|
|
DataType data;
|
|
};
|
|
|
|
#endif |