/** * 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