59 lines
1.3 KiB
C++
Executable File
59 lines
1.3 KiB
C++
Executable File
/**
|
|
* Handler for all asset locations
|
|
* $Id$
|
|
* $HeadURL$
|
|
* $Author$
|
|
* Created by Iuliana Ojog, SLSE, 2017-09-20
|
|
*/
|
|
|
|
#include "handler_location.h"
|
|
#include "main_handler.h"
|
|
|
|
namespace AssetManagement
|
|
{
|
|
|
|
// -------------------------------------------------------------------------------------------------------
|
|
// Database::AsmLocation => AssetManagement::Location
|
|
static inline Location toDdsData(const Database::AsmLocation &dbData)
|
|
{
|
|
Location ddsData;
|
|
|
|
ddsData.id(dbData.id);
|
|
ddsData.name(dbData.name.toStdString());
|
|
ddsData.description(dbData.description.toStdString());
|
|
|
|
// init data not in db
|
|
ddsData.isDeleted(false);
|
|
ddsData.isUsed(false);
|
|
|
|
return ddsData;
|
|
}
|
|
|
|
HandlerLocation::HandlerLocation(MainHandler *mainHandler)
|
|
: m_mainHandler(mainHandler)
|
|
, m_logger(getLogger("HandlerLocation"))
|
|
{
|
|
}
|
|
|
|
bool HandlerLocation::init()
|
|
{
|
|
int iCnt = 0;
|
|
// create objects
|
|
auto cb = [this, &iCnt] (const Database::AsmLocation &data)
|
|
{
|
|
m_mainHandler->dds()->dts()->publish(toDdsData(data));
|
|
++iCnt;
|
|
};
|
|
if (!m_mainHandler->db()->select(cb))
|
|
{
|
|
ERROR_LOG(m_logger) << "Error reading data from database!";
|
|
return false;
|
|
}
|
|
|
|
DEBUG_LOG(m_logger) << "#Locations published: " << iCnt;
|
|
|
|
return true;
|
|
}
|
|
|
|
} // Namespace AssetManagement
|