Program: gdcm
Module: $RCSfile: gdcmRefCounter.h,v $
Language: C++
- Date: $Date: 2005/10/21 10:40:53 $
- Version: $Revision: 1.4 $
+ Date: $Date: 2007/08/22 16:14:04 $
+ Version: $Revision: 1.12 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
=========================================================================*/
-#ifndef GDCMREFCOUNTER_H
-#define GDCMREFCOUNTER_H
+#ifndef _GDCMREFCOUNTER_H_
+#define _GDCMREFCOUNTER_H_
#include "gdcmBase.h"
-#include "gdcmDebug.h"
+//#include "gdcmDebug.h"
+#include <typeinfo>
-namespace gdcm
+namespace GDCM_NAME_SPACE
{
//-----------------------------------------------------------------------------
/**
*/
class GDCM_EXPORT RefCounter : public Base
{
-public:
- gdcmTypeMacro(RefCounter)
+ gdcmTypeMacro(RefCounter);
public:
// Allocator / Unallocator
- /// Delete the object
+ /// \brief Delete the object
/// \remarks The object is deleted only if its reference counting is to zero
- inline void Delete(void)
- {
- Unregister();
- }
+ void Delete() { Unregister(); }
// Reference count
- /// Register the object
+ /// \brief Register the object
/// \remarks It increments the reference counting
- inline void Register(void)
- {
- RefCount++;
- }
- /// Unregister the object
+ void Register() { RefCount++; }
+
+ /// \brief Unregister the object
/// \remarks It decrements the reference counting
- inline void Unregister(void)
+ void Unregister()
{
+//std::cout <<"================Unreg " << typeid(*this).name() << std::endl;
RefCount--;
- if(RefCount==0)
- {
- delete this;
- }
+ if(RefCount<=0)
+ delete this;
}
- /// Get the reference counting
+ /// \brief Get the reference counting
/// \return Reference count
- inline const unsigned long &GetRefCount(void) const
+ const unsigned long &GetRefCount() const
{
- return(RefCount);
+ return RefCount;
}
protected: