aboutsummaryrefslogtreecommitdiff
path: root/APEX_1.4/shared/general/HACD/include/dgRefCounter.h
diff options
context:
space:
mode:
authorgit perforce import user <a@b>2016-10-25 12:29:14 -0600
committerSheikh Dawood Abdul Ajees <Sheikh Dawood Abdul Ajees>2016-10-25 18:56:37 -0500
commit3dfe2108cfab31ba3ee5527e217d0d8e99a51162 (patch)
treefa6485c169e50d7415a651bf838f5bcd0fd3bfbd /APEX_1.4/shared/general/HACD/include/dgRefCounter.h
downloadphysx-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.h72
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