/*------------------------------------------------------------------------*/ /* */ /* REF.H */ /* */ /*------------------------------------------------------------------------*/ /* * C/C++ Run Time Library - Version 10.0 * * Copyright (c) 1987, 2000 by Inprise Corporation * All Rights Reserved. * */ /* $Revision: 9.1 $ */ #ifndef __cplusplus #error Must use C++ for REF.H #endif #ifndef __REF_H #define __REF_H /* * * Base class for reference counting * */ #if !defined(___DEFS_H) #include <_defs.h> #endif #if !defined(RC_INVOKED) #if defined(__STDC__) #pragma warn -nak #endif #endif /* !RC_INVOKED */ /*------------------------------------------------------------------------*/ /* */ /* class TReference */ /* */ /* Base class for reference counting */ /* */ /*------------------------------------------------------------------------*/ class _EXPCLASS TReference { public: _RTLENTRY TReference(unsigned short initRef = 0) : Refs(initRef) { } void _RTLENTRY AddReference() { Refs++; } unsigned short _RTLENTRY References() { return Refs; } unsigned short _RTLENTRY RemoveReference() { return --Refs; } private: unsigned short Refs; // Number of references to this block }; #if defined( BI_OLDNAMES ) #define BI_Reference TReference #endif #if !defined(RC_INVOKED) #if defined(__STDC__) #pragma warn .nak #endif #endif /* !RC_INVOKED */ #endif // __REF_H