/** * @RDE_HEADER@ * The DataManager class takes strucure element data from the HandlerStructureElement, * offers an interface to get and set structure data * $Id$ * $HeadURL$ * $Author$ * Created by Philipp Dassow, SLST, 2017-12-05 */ #include "WebSocketInterface/data_manager.h" #include "main_handler.h" #include #include #include #include namespace ServiceManagement { namespace WebSocketInterface { //--------------------------------------------------------------------------------------------------------- DataManager::DataManager(MainHandler *mainHandler) : m_mainHandler(mainHandler) , m_logger(getLogger(QStringLiteral("DataManager"))) { } //--------------------------------------------------------------------------------------------------------- bool DataManager::init() { m_groupHandler = m_mainHandler->groupHandler(); return true; } //--------------------------------------------------------------------------------------------------------- LtsWebSocket::ReplyMessage *DataManager::servicesInformation(const QString &uuid) const { using namespace Messages; const QVector groups = m_groupHandler->groups(); QVector data; data.reserve(groups.size()); for (auto group : groups) { const QMap serviceProcs = group->serviceProcs(); ServicePortsInformationMessage::ExerciseInformation exerciseInfo; for (ServiceProcess *service : serviceProcs) { if (service->ports().is_set()) { ServicePortsInformationMessage::ServiceInformation serviceInfo; serviceInfo.name = service->serviceName(); serviceInfo.abbreviation = service->abbreviation(); const auto ports = service->ports().get(); for (const auto &port : ports) serviceInfo.ports.append(ServicePortsInformationMessage::PortInformation{port.number, static_cast(port.type), QString::fromStdString(port.properties)}); exerciseInfo.services.append(serviceInfo); } } if (!exerciseInfo.services.isEmpty()) { exerciseInfo.exerciseId = group->exercisePartitionId(); exerciseInfo.replayPartitionId = group->replayPartitionId(); data.append(exerciseInfo); } } return new ServicePortsInformationMessage(data, uuid); } } // namespace WebSocketInterface } // namespace ServiceManagement