refCount.H
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration |
5  \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8 License
9  This file is part of OpenFOAM.
10 
11  OpenFOAM is free software: you can redistribute it and/or modify it
12  under the terms of the GNU General Public License as published by
13  the Free Software Foundation, either version 3 of the License, or
14  (at your option) any later version.
15 
16  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
17  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
19  for more details.
20 
21  You should have received a copy of the GNU General Public License
22  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
23 
24 Class
25  Foam::refCount
26 
27 Description
28  Reference counter for various OpenFOAM components.
29 
30 \*---------------------------------------------------------------------------*/
31 
32 #ifndef refCount_H
33 #define refCount_H
34 
35 #include "bool.H"
36 
37 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
38 
39 namespace Foam
40 {
41 
42 /*---------------------------------------------------------------------------*\
43  Class refCount Declaration
44 \*---------------------------------------------------------------------------*/
45 
46 class refCount
47 {
48  // Private data
49 
50  int count_;
51 
52  // Private Member Functions
53 
54  //- Dissallow copy
55  refCount(const refCount&);
56 
57  //- Dissallow bitwise assignment
58  void operator=(const refCount&);
59 
60 
61 public:
62 
63  // Constructors
64 
65  //- Construct null with zero count
66  refCount()
67  :
68  count_(0)
69  {}
70 
71 
72  // Member Functions
73 
74  //- Return the reference count
75  int count() const
76  {
77  return count_;
78  }
79 
80 
81  //- Return true if the reference count is zero
82  bool okToDelete() const
83  {
84  return !count_;
85  }
86 
87 
88  //- Reset the reference count to zero
89  void resetRefCount()
90  {
91  count_ = 0;
92  }
93 
94 
95  // Member Operators
96 
97  //- Increment the reference count
98  void operator++()
99  {
100  count_++;
101  }
102 
103  //- Increment the reference count
104  void operator++(int)
105  {
106  count_++;
107  }
108 
109  //- Decrement the reference count
110  void operator--()
111  {
112  count_--;
113  }
114 
115  //- Decrement the reference count
116  void operator--(int)
117  {
118  count_--;
119  }
120 };
121 
122 
123 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
124 
125 } // End namespace Foam
126 
127 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
128 
129 #endif
130 
131 // ************************************************************************* //
Foam::refCount::operator=
void operator=(const refCount &)
Dissallow bitwise assignment.
Foam::refCount
Reference counter for various OpenFOAM components.
Definition: refCount.H:45
Foam::refCount::resetRefCount
void resetRefCount()
Reset the reference count to zero.
Definition: refCount.H:88
Foam::refCount::okToDelete
bool okToDelete() const
Return true if the reference count is zero.
Definition: refCount.H:81
Foam::refCount::refCount
refCount()
Construct null with zero count.
Definition: refCount.H:65
Foam::refCount::operator--
void operator--()
Decrement the reference count.
Definition: refCount.H:109
bool.H
System bool.
Foam::refCount::operator++
void operator++(int)
Increment the reference count.
Definition: refCount.H:103
Foam
Namespace for OpenFOAM.
Definition: combustionModel.C:30
Foam::refCount::count_
int count_
Definition: refCount.H:49
Foam::refCount::operator++
void operator++()
Increment the reference count.
Definition: refCount.H:97
Foam::refCount::count
int count() const
Return the reference count.
Definition: refCount.H:74
Foam::refCount::operator--
void operator--(int)
Decrement the reference count.
Definition: refCount.H:115