diff options
| author | git perforce import user <a@b> | 2016-10-25 12:29:14 -0600 |
|---|---|---|
| committer | Sheikh Dawood Abdul Ajees <Sheikh Dawood Abdul Ajees> | 2016-10-25 18:56:37 -0500 |
| commit | 3dfe2108cfab31ba3ee5527e217d0d8e99a51162 (patch) | |
| tree | fa6485c169e50d7415a651bf838f5bcd0fd3bfbd /APEX_1.4/shared/general/HACD/include/dgRefCounter.h | |
| download | physx-3.4-3dfe2108cfab31ba3ee5527e217d0d8e99a51162.tar.xz physx-3.4-3dfe2108cfab31ba3ee5527e217d0d8e99a51162.zip | |
Initial commit:
PhysX 3.4.0 Update @ 21294896
APEX 1.4.0 Update @ 21275617
[CL 21300167]
Diffstat (limited to 'APEX_1.4/shared/general/HACD/include/dgRefCounter.h')
| -rw-r--r-- | APEX_1.4/shared/general/HACD/include/dgRefCounter.h | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/APEX_1.4/shared/general/HACD/include/dgRefCounter.h b/APEX_1.4/shared/general/HACD/include/dgRefCounter.h new file mode 100644 index 00000000..83af3e79 --- /dev/null +++ b/APEX_1.4/shared/general/HACD/include/dgRefCounter.h @@ -0,0 +1,72 @@ +/* Copyright (c) <2003-2011> <Julio Jerez, Newton Game Dynamics> +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef __DGREF_COUNTER__ +#define __DGREF_COUNTER__ + +class dgRefCounter +{ + public: + dgRefCounter(void); + int GetRef() const; + int Release(); + void AddRef(); + + protected: + virtual ~dgRefCounter(void); + + private: + int m_refCount; +}; + + +inline dgRefCounter::dgRefCounter(void) +{ + m_refCount = 1; +} + +inline dgRefCounter::~dgRefCounter(void) +{ + HACD_ASSERT (m_refCount <= 1); +} + + +inline int dgRefCounter::GetRef() const +{ + return m_refCount; +} + +inline int dgRefCounter::Release() +{ + m_refCount --; + if (!m_refCount) { + delete this; + return 0; + } + return m_refCount; +} + +inline void dgRefCounter::AddRef() +{ + m_refCount ++; +} + +#endif |