95 lines
3.3 KiB
C++
Executable File
95 lines
3.3 KiB
C++
Executable File
/**
|
|
* @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 <QVector>
|
|
|
|
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<Messages::ServicePortsInformation::ExerciseInformation> &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
|