summaryrefslogtreecommitdiffstats
path: root/source/ptr_cChunk.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--source/ptr_cChunk.h37
1 files changed, 37 insertions, 0 deletions
diff --git a/source/ptr_cChunk.h b/source/ptr_cChunk.h
new file mode 100644
index 000000000..c3556839c
--- /dev/null
+++ b/source/ptr_cChunk.h
@@ -0,0 +1,37 @@
+#pragma once
+
+#include "cChunk.h"
+
+class ptr_cChunk
+{
+public:
+ ptr_cChunk( cChunk* a_Ptr )
+ : m_Ptr( a_Ptr )
+ {
+ if( m_Ptr ) m_Ptr->AddReference();
+ }
+
+ ptr_cChunk( const ptr_cChunk& a_Clone )
+ : m_Ptr( a_Clone.m_Ptr )
+ {
+ if( m_Ptr ) m_Ptr->AddReference();
+ }
+
+ ~ptr_cChunk()
+ {
+ if( m_Ptr ) m_Ptr->RemoveReference();
+ }
+
+ cChunk* operator-> ()
+ {
+ return m_Ptr;
+ }
+
+ cChunk& operator* () { return *m_Ptr; }
+ bool operator!() { return !m_Ptr; }
+ bool operator==( const ptr_cChunk& a_Other ) { return m_Ptr == a_Other.m_Ptr; }
+ operator bool() { return m_Ptr != 0; }
+ operator cChunk*() { return m_Ptr; }
+private:
+ cChunk* m_Ptr;
+}; \ No newline at end of file