summaryrefslogtreecommitdiffstats
path: root/c++/src/H5RefCounter.cpp
blob: aadc391033f5e51809f55df16ce504f128cac6f6 (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 "H5Include.h"
#include "H5RefCounter.h"

#ifndef H5_NO_NAMESPACE
namespace H5 {
#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