62 lines
1.7 KiB
C++
Executable File
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
|