summaryrefslogtreecommitdiffstats
path: root/c++/src/H5RefCounter.cpp
diff options
context:
space:
mode:
authorBinh-Minh Ribler <bmribler@hdfgroup.org>2000-12-07 00:04:08 (GMT)
committerBinh-Minh Ribler <bmribler@hdfgroup.org>2000-12-07 00:04:08 (GMT)
commitf148ff3caf533e9f6029798617f0a8087bcd6c05 (patch)
tree00bb6ca4d0e50aa0e591eed6a0d739c04c93c5e7 /c++/src/H5RefCounter.cpp
parent7df8cd5cfe22372f603ea058334647fe4017008e (diff)
downloadhdf5-f148ff3caf533e9f6029798617f0a8087bcd6c05.zip
hdf5-f148ff3caf533e9f6029798617f0a8087bcd6c05.tar.gz
hdf5-f148ff3caf533e9f6029798617f0a8087bcd6c05.tar.bz2
[svn-r3080]
Purpose: Support portability Description: I forgot that source file extension .C will not work on Windows. Solution: Changed all source file from *.C to *.cpp for portability. Platforms tested: arabica (sparc-sun-solaris 2.7)
Diffstat (limited to 'c++/src/H5RefCounter.cpp')
-rw-r--r--c++/src/H5RefCounter.cpp35
1 files changed, 35 insertions, 0 deletions
diff --git a/c++/src/H5RefCounter.cpp b/c++/src/H5RefCounter.cpp
new file mode 100644
index 0000000..6167642
--- /dev/null
+++ b/c++/src/H5RefCounter.cpp
@@ -0,0 +1,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