Files
qt5-legatus-legacy/Lts/Viewer/SituationMap/Common/referenced.cpp
T
2026-08-13 18:33:10 +02:00

77 lines
1.8 KiB
C++
Executable File

/**
**
** @RDE_HEADER@
** Base class for reference counted objects
** $Id$
** $HeadURL$
** $Author$
**
** -----------------------------------------------------------------------------------------------
**
** Hardware-Umgebung: Intel-PC
** Software-Umgebung: Linux, Windows 7, Qt 5.4. ArcGIS 10.2.5
**
** Pgrm-Sprache ....: C++ 11
**
** HIER/SACHN ......: P: -- ---- - --- QE
**
** Version .........: $Revision$
** -----------------------------------------------------------------------------------------------
**
** Autor ...........: Nikolaus Hanekamp, SEDG, Tel. 2906
** Joerg Turla, SPD G, Tel. 3132
**
** -----------------------------------------------------------------------------------------------
**
** Notizen .........:
**
** 18.08.2004, NH : Urversion
** 13.05.2015, JT : Refactoring for use with Qt5, ArcGIS 10.2.5
**
** -----------------------------------------------------------------------------------------------
*/
#include "referenced.h"
#include <QDebug>
#include <typeinfo>
#include <memory>
namespace SituationMap
{
std::shared_ptr<DeleteHandler> & s_deleteHandler()
{
static std::shared_ptr<DeleteHandler> deleteHandler(nullptr);
return deleteHandler;
} // std::shared_ptr<DeleteHandler> & s_deleteHandler()
void Referenced::setDeleteHandler(DeleteHandler *handler)
{
s_deleteHandler().reset(handler);
} // Referenced::setDeleteHandler
DeleteHandler *Referenced::getDeleteHandler() { return s_deleteHandler().get(); }
Referenced::~Referenced()
{
if (_refCount > 0)
{
qCritical() << "Deleting still referenced object < " << QString::number((qint64)this, 0, 16) << ">"
<< "of type <" << typeid(this).name() << ">"
<< "refCnt: <" << _refCount;
}
} // Referenced::~Referenced
} // end of namespace SituationMap