Blender  V2.93
MEM_RefCounted.h
Go to the documentation of this file.
1 /*
2  * This program is free software; you can redistribute it and/or
3  * modify it under the terms of the GNU General Public License
4  * as published by the Free Software Foundation; either version 2
5  * of the License, or (at your option) any later version.
6  *
7  * This program is distributed in the hope that it will be useful,
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10  * GNU General Public License for more details.
11  *
12  * You should have received a copy of the GNU General Public License
13  * along with this program; if not, write to the Free Software Foundation,
14  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
15  *
16  * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
17  * All rights reserved.
18  */
19 
26 #ifndef __MEM_REFCOUNTED_H__
27 #define __MEM_REFCOUNTED_H__
28 
42  public:
47  {
48  }
49 
54  inline virtual int getRef() const;
55 
60  inline virtual int incRef();
61 
67  inline virtual int decRef();
68 
69  protected:
74  virtual ~MEM_RefCounted()
75  {
76  }
77 
78  protected:
81 };
82 
83 inline int MEM_RefCounted::getRef() const
84 {
85  return m_refCount;
86 }
87 
89 {
90  return ++m_refCount;
91 }
92 
94 {
95  m_refCount--;
96  if (m_refCount == 0) {
97  delete this;
98  return 0;
99  }
100  return m_refCount;
101 }
102 
103 #endif // __MEM_REFCOUNTED_H__
virtual int getRef() const
virtual ~MEM_RefCounted()
virtual int decRef()
virtual int incRef()