Files
qt5-legatus-legacy/Lts/Services/InfrastructureManagement/handler_special_area.cpp
T
2026-08-13 18:33:10 +02:00

62 lines
1.7 KiB
C++
Executable File

/**
* @RDE_HEADER@
* ISM Handler Special Areas
* $Id$
* $HeadURL$
* $Author$
* Created by Hanna E. Rathje, 2023-07-26
*/
#include "handler_special_area.h"
#include "object_special_area.h"
namespace InfrastructureManagement {
//--------------------------------------------------------------------------------------------------------------------------------------------------
HandlerSpecialArea::HandlerSpecialArea(MainHandler *mainHandler)
: Base(mainHandler, getLogger("HandlerSpecialArea"))
{
}
//--------------------------------------------------------------------------------------------------------------------------------------------------
HandlerSpecialArea::~HandlerSpecialArea()
{
qDeleteAll(m_objectSpecialAreaMap);
}
//--------------------------------------------------------------------------------------------------
bool HandlerSpecialArea::init()
{
bool bRet = true;
auto cb = [this, &bRet] (const Database::IsmSpecialArea &data)
{
SpecialArea ddsData = ObjectSpecialArea::toDdsData(data);
ObjectSpecialArea *ifs(new ObjectSpecialArea(m_mainHandler));
Core::FunctionReplyObject ret = ifs->createObject(ddsData);
if (ret.error())
{
delete ifs;
ERROR_LOG(m_logger) << ret();
bRet = false;
return;
}
m_objectSpecialAreaMap.insert(ifs->getId(), ifs);
DEBUG_LOG(m_logger) << " id=" << ifs->getData().id()
<< " name=" << ifs->getData().name();
};
// create Asset objects
if (!db()->select(cb) || !bRet)
{
ERROR_LOG(m_logger) << "Error reading data from database!";
return false;
}
DEBUG_LOG(m_logger) << "m_objectSpecialAreaMap.size() = " << m_objectSpecialAreaMap.size();
return true;
}
} // namespace InfrastructureManagement