34 lines
380 B
C++
34 lines
380 B
C++
#include "..\e2dobject.h"
|
|
|
|
e2d::Ref::Ref()
|
|
: ref_count_(0)
|
|
{
|
|
}
|
|
|
|
e2d::Ref::~Ref()
|
|
{
|
|
}
|
|
|
|
LONG e2d::Ref::Retain()
|
|
{
|
|
return ::InterlockedIncrement(&ref_count_);
|
|
}
|
|
|
|
LONG e2d::Ref::Release()
|
|
{
|
|
LONG new_count = ::InterlockedDecrement(&ref_count_);
|
|
|
|
if (new_count <= 0)
|
|
{
|
|
delete this;
|
|
return 0;
|
|
}
|
|
|
|
return new_count;
|
|
}
|
|
|
|
LONG e2d::Ref::GetRefCount() const
|
|
{
|
|
return ref_count_;
|
|
}
|