Home
Downloads
Documentation
Installation
User Guide
man-pages
API Documentation
README
Release Notes
Changes
License
Support
SourceForge Project
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
src
OpenFOAM
memory
tmp
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) 1991-2010 OpenCFD Ltd.
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 tmp<field>.
29
30
\*---------------------------------------------------------------------------*/
31
32
#ifndef refCount_H
33
#define refCount_H
34
35
#include <
OpenFOAM/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
// ************************ vim: set sw=4 sts=4 et: ************************ //