37 lines
678 B
C
37 lines
678 B
C
|
#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;
|
||
|
};
|