caudio/include/IRefCounted.h

37 lines
472 B
C
Raw Normal View History

#ifndef IREFCOUNTED_H
#define IREFCOUNTED_H
namespace cAudio
{
class IRefCounted
{
public:
IRefCounted() : RefCount(1) { }
virtual ~IRefCounted() { }
void grab()
{
++RefCount;
}
bool drop()
{
--RefCount;
if (RefCount < 1)
{
delete this;
return true;
}
return false;
}
int getReferenceCount() const
{
return RefCount;
}
private:
int RefCount;
};
}
#endif //! IREFCOUNTED_H