/** * @RDE_HEADER@ * The DataManager class handles data to be send to the websocket * offers an interface to get and set structure data * $Id$ * $HeadURL$ * $Author$ * Created by Philipp Dassow, SLST, 2017-12-05 */ #include "data_manager.h" #include "Messages/reply_message.h" #include "object_exercise.h" namespace ExerciseManagement { namespace WebSocketInterface { //--------------------------------------------------------------------------------------------------------- DataManager::DataManager(const std::shared_ptr &dbInterface, const std::shared_ptr &exHandler) : LtsWebSocket::DataManagerBaseDl(dbInterface, getLogger("DataManager")) , m_exerciseHandler(exHandler) {} LtsWebSocket::ReplyMessage *DataManager::exercisePhaseBaseData(const QString &uuid) const { return toBaseDataMessageFromDb(uuid); } LtsWebSocket::ReplyMessage *DataManager::exerciseStateChangeBaseData(const QString &uuid) const { return toBaseDataMessageFromDb(uuid); } LtsWebSocket::ReplyMessage *DataManager::exerciseBaseData(const QString &uuid) const { return toBaseDataMessageFromDb(uuid); } LtsWebSocket::ReplyMessage *DataManager::exerciseInformation(const QString &uuid) const { using namespace Messages; ExerciseInformationMessage::ExInformation exInfo; QVector data; const auto &exerciseMap = m_exerciseHandler->getExerciseMap(); data.reserve(exerciseMap.size()); for (const ObjectExercise *ex : exerciseMap) { const auto &exData = ex->data(); exInfo.exerciseId = exData.id; exInfo.name = exData.name; exInfo.beginTime = exData.beginTime.toMSecsSinceEpoch(); exInfo.endTime = exData.endTime.toMSecsSinceEpoch(); exInfo.startTime = exData.startTime.toMSecsSinceEpoch(); exInfo.stopTime = exData.stopTime.toMSecsSinceEpoch(); exInfo.timeZone = exData.defaultTimeZone; exInfo.status = exData.exerciseStateId; exInfo.description = exData.description; data.append(exInfo); } return new ExerciseInformationMessage(data, uuid); } } // namespace WebSocketInterface } // namespace ExerciseManagement