diff options
Diffstat (limited to 'c++/src/H5Idtemplates.h')
-rw-r--r-- | c++/src/H5Idtemplates.h | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/c++/src/H5Idtemplates.h b/c++/src/H5Idtemplates.h new file mode 100644 index 0000000..442ca97 --- /dev/null +++ b/c++/src/H5Idtemplates.h @@ -0,0 +1,30 @@ +#ifndef _Reset_h +#define _Reset_h + +#include "H5IdComponent.h" + +#ifndef H5_NO_NAMESPACE +namespace H5 { +#endif + +// Older compilers (baldric) don't support template member functions +// and IdComponent::reset is one; so at this time, the resetId is not +// a member function so it can be template to work around that problem. + +template <class Type> +void resetIdComponent( + Type* obj ) // pointer to object to be reset +{ + if( obj->noReference()) // ref count of this object is decremented here + { + if( obj->getId() > 0 ) + obj->p_close(); // which p_close depends on whom this + // IdComponent object belongs to + obj->reset(); // delete ref_count from IdComponent + } +} + +#ifndef H5_NO_NAMESPACE +} +#endif +#endif |