diff --git a/GeoModelCore/GeoModelKernel/GeoModelKernel/RCBase.h b/GeoModelCore/GeoModelKernel/GeoModelKernel/RCBase.h index 0dfd0b5a9ac1c235b8422a7287fb9fc133395d7f..260f9b8d7cbe4bd2e6b28b77b28c0e5f2ed26e58 100644 --- a/GeoModelCore/GeoModelKernel/GeoModelKernel/RCBase.h +++ b/GeoModelCore/GeoModelKernel/GeoModelKernel/RCBase.h @@ -21,30 +21,35 @@ #include <atomic> -class RCBase -{ +class RCBase { public: - RCBase(); + RCBase() = default; // Increase the reference count - void ref () const; + void ref() const { + ++m_count; + } // Decreases the reference count. When the reference count // falls to zero, the object deletes itself. - void unref () const; + void unref () const { + if (--m_count == 0) delete this; + } // Return the reference count. - unsigned int refCount () const; + unsigned int refCount () const { + return m_count.load(); + } protected: - virtual ~RCBase(); + virtual ~RCBase() = default; private: - RCBase(const RCBase &right); - RCBase & operator=(const RCBase &right); + RCBase(const RCBase &right) = delete; + RCBase & operator=(const RCBase &right) = delete; - // The reference count - mutable std::atomic<unsigned> m_count; + // The reference count + mutable std::atomic<unsigned> m_count{0}; }; diff --git a/GeoModelCore/GeoModelKernel/src/RCBase.cxx b/GeoModelCore/GeoModelKernel/src/RCBase.cxx deleted file mode 100755 index 368cf36799fafffa56e166165ea0cce59754ea7c..0000000000000000000000000000000000000000 --- a/GeoModelCore/GeoModelKernel/src/RCBase.cxx +++ /dev/null @@ -1,30 +0,0 @@ -/* - Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration -*/ - -#include "GeoModelKernel/RCBase.h" -#include <exception> - -RCBase::RCBase() - : m_count(0) -{ -} - -RCBase::~RCBase() -{ -} - -void RCBase::ref () const -{ - m_count++; -} - -void RCBase::unref () const -{ - if (--m_count == 0) delete this; -} - -unsigned int RCBase::refCount () const -{ - return m_count.load(); -}