#pragma once
#ifndef AObjectRetentionClass_h
#define AObjectRetentionClass_h
#include "ASyncronizationClass.h"
namespace CoreFW
{
class CORE_DLL_DECLARATION_SPECIFIER AObjectRetentionClass
{
protected:
AObjectRetentionClass() ;
virtual ~AObjectRetentionClass() ;
public:
long GetRetentionCount() const ;
protected:
long RetainObject() ;
long ReleaseObject() ;
virtual void DeallocateObject() = 0 ;
void ResetRetentionCount() ;
void ReleaseParameters() ;
private:
long m_lObjectRetentionCount ;
} ;
} // End namespace
#endif