summaryrefslogtreecommitdiffstats
path: root/c++/src/H5RefCounter.cpp
blob: 61fcff4e6759c907fbe2ea788d92d39cee56c4d0 (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