
template<typename T>
class Object
{
public:
Object(T *Object)
{
this->Object = Object;
}
bool IsInUse(void)
{
return this->bInUse;
}
void StartUsing(void)
{
this->bInUse=true;
}
void StopUsing(void)
{
this->bInUse=false;
}
T GetObject(void)
{
return this->Object;
}
private:
T *Object;
bool bInUse;
};