/** * @RDE_HEADER@ * The DataManager class is a convenience class for managing structure data * offers an interface to get and set structure data * $Id$ * $HeadURL$ * $Author$ * Created by Philipp Dassow, SLST, 2017-03-27 */ #include "WebSocketInterface/data_manager.h" #include namespace OcBaseDownload { namespace WebSocketInterface { //--------------------------------------------------------------------------------------------------------- DataManager::DataManager(MainHandler *mainHandler) : m_mainHandler(mainHandler) , m_currentDownload(CurrentDownload::NOTHING) , m_logger(getLogger(QStringLiteral("DataManager"))) { } //--------------------------------------------------------------------------------------------------------- void DataManager::handleErrorMessage(const OcBaseDownload::WebSocketInterface::Messages::ErrorMessage::ErrorData &errData) { ERROR_LOG(m_logger) << "uuid: " << errData.uuid << " error class: " << errData.errorClass << " text: " << errData.errorMessage; } //--------------------------------------------------------------------------------------------------------- void DataManager::servicePortsInformation(const QVector &exerciseInformation) { DEBUG_LOG(m_logger) << "Got ServicePortsInformation from websocket"; switch (m_currentDownload) { case CurrentDownload::PDF: m_mainHandler->handlerPdfDownload()->handleServicePortsInformation(exerciseInformation); break; case CurrentDownload::BASE: //m_mainHandler->handlerBaseDownload()->handleServicePortsInformation(exerciseInformation); break; case CurrentDownload::NOTHING: default: WARNING_LOG(m_logger) << "Got Ports Information in neither BASE nor PDF download mode"; break; } } //--------------------------------------------------------------------------------------------------------- void DataManager::handlePdfListMessage(const Messages::PdfListMessage::PdfListData &pdfListData) { DEBUG_LOG(m_logger) << "Got PDF list from websocket"; m_mainHandler->handlerPdfDownload()->handlePdfListData(pdfListData); } //--------------------------------------------------------------------------------------------------------- void DataManager::setCurrentDownload(CurrentDownload currentDownload) { m_currentDownload = currentDownload; switch (m_currentDownload) { case CurrentDownload::PDF: DEBUG_LOG(m_logger) << "Setting current download mode to PDF"; m_mainHandler->dds()->fts()->enableStartBaseDownload(false); m_mainHandler->dds()->fts()->enableGetPdfList(); m_mainHandler->dds()->fts()->enableStartPdfDownload(); break; case CurrentDownload::BASE: DEBUG_LOG(m_logger) << "Setting current download mode to BASE"; m_mainHandler->dds()->fts()->enableStartBaseDownload(); m_mainHandler->dds()->fts()->enableGetPdfList(false); m_mainHandler->dds()->fts()->enableStartPdfDownload(false); break; case CurrentDownload::NOTHING: DEBUG_LOG(m_logger) << "Setting current download mode to NOTHING"; m_mainHandler->dds()->fts()->enableAll(); break; default: break; } } //--------------------------------------------------------------------------------------------------------- CurrentDownload DataManager::currentDownload() const { return m_currentDownload; } } // namespace WebSocketInterface } // namespace OcBaseDownload