/** * Handler for the HMI language * $Id$ * $HeadURL$ * $Author$ */ #include "object_san_nine_liner.h" #include "san_category_line_json.h" namespace Evaluations { ObjectSanNineLiner::ObjectSanNineLiner(const std::shared_ptr &ddsHandler, const std::shared_ptr &db) : m_ddsHandler(ddsHandler) , m_db(db) , m_logger(getLogger("ObjectSanNineLiner")) { } Core::FunctionReplyObject ObjectSanNineLiner::createObject(const Database::SanNineLiner &data) { m_data = data; if (m_data.id <= 0) { if (!m_db->insert(m_data)) return Core::FunctionReplyObject(0, tr_lts("dds", "Error inserting ObjSanNineLiner-data into database")); } // done in handler //onPublishData(); return Core::FunctionReplyObject(m_data.id); } Core::FunctionReplyObject ObjectSanNineLiner::updateObject(const Database::SanNineLiner &data) { if (!m_db->update(data)) return Core::FunctionReplyObject(data.id, tr_lts("dds", "Error updating EvlComment-data into database")); m_data = data; // done in handler //onPublishData(); return Core::FunctionReplyObject(m_data.id); } Core::FunctionReplyObject ObjectSanNineLiner::removeObject() { if (!m_db->removeSanNineLiner(m_data.id)) return Core::FunctionReplyObject(m_data.id, tr_lts("dds", "EvlComment with id %1 can not be removed")).arg(m_data.id); m_ddsHandler->dts()->removeSanNineLinerByKey(m_data.id); return Core::FunctionReplyObject(m_data.id); } void ObjectSanNineLiner::addLineCategory(const Database::SanCategoryLine &data) { m_lines.push_back(std::move(data)); } void ObjectSanNineLiner::removeCategoryLines() { m_lines.clear(); } void ObjectSanNineLiner::onPublishData() { Evaluations::SanNineLiner ddsData; ddsData.id(m_data.id); ddsData.lastModified(m_data.lastModified); ddsData.line1_position(Core::GeoPosition2D(m_data.position.x(), m_data.position.y())); ddsData.line2_RadioFrequencyCallSignSuffix(m_data.radioFrequencySuffixCallsign.toStdString()); QJsonDocument doc = SanCategoryLine::toJson(m_lines); ddsData.lines(QString::fromUtf8(doc.toJson(QJsonDocument::Compact)).toStdString()); INFO_LOG(m_logger) << "Publish SanNineLiner-data to dds (" << m_data.id << ") other lines: " << ddsData.lines(); if (!m_ddsHandler->dts()->publish(ddsData)) ERROR_LOG(m_logger) << "Error publishing SanNineLiner-data to dds"; } } // Namespace Evaluations