summaryrefslogtreecommitdiffstats
path: root/c++/src/H5RefCounter.C
blob: f98f7d1f8692289b0834175e02507982e40a5c2d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include "H5RefCounter.h"

#ifndef H5_NO_NAMESPACE
namespace H5 {
using namespace std;
#endif

// Creates a reference counter to be used by an HDF5 object
RefCounter::RefCounter() : counter(1) { }; 
 
// Returns the current value of the reference counter
int RefCounter::getCounter () const { return counter; }

// Increments the reference counter as a copy of the object that uses
// this counter is created.
void RefCounter::increment() { counter++; }

// Decrements the reference counter as a copy of the object that uses
// this counter is destroyed.
void RefCounter::decrement() { counter--; }

// Decrements the reference counter then determines if there are no more 
// reference to the object that uses this counter
bool RefCounter::noReference()
{
   if( counter > 0 )
      counter--;
   return( counter == 0 ? true:false );
}

RefCounter::~RefCounter() {}

#ifndef H5_NO_NAMESPACE
} // end namespace
#endif