/** * @RDE_HEADER@ * The DataManager class is a convenience class for managing structure data * $Id$ * $HeadURL$ * $Author$ * Created by Philipp Dassow, SLST, 2017-12-05 */ #pragma once #include "WsBaseDataInterface/Messages/reply_message.h" #include "logger.h" #include "ws_base_data_interface_handler.h" #include #include #include #include #include #include class NSqlQuery; namespace WarehouseGuez { class MainHandler; class GroupHandler; namespace WsBaseDataInterface { /** * @brief The DataManager class is a convenience class for managing structure data */ class DataManager final : public QObject { Q_OBJECT public: /** * @brief DataManager Constructor * @param mainHandler Source for needed handlers */ explicit DataManager(MainHandler *mainHandler); /** * @brief init Initialises a DataManager object * @return True on sucess, otherwise false */ bool init(); void setWebSocketServer( LtsWebSocket::LtsWebSocketServer *webSocketServer) { m_webSocketServer = webSocketServer;} void reconnectSignals(); LtsWebSocket::ReplyMessage *equipmentTypes(const QString &uuid) const; void newExerciseInformationsFromEXCON(const EXCON::Exercises &ex); void participantsFromEXCON(const PlayerInfo &pl); bool participantFromEXCON(const IWMS2ECC::PlayerInfo &pl, int modType); bool exerciseChanged(const IWMS2ECC::Exercise &data, DataModification modType); void registerReply(int exerciseId, qint32 participantId, int returnValue); private: static bool findExercise(int exerciseId, const QVector &dataVec); void createTableTlnOut(int exerciseId); void createTableTlnZuordnung(int exerciseId); void createTriggerForExercise(NSqlQuery &q, int exerciseId); private slots: void onInsertParticipantAssignment(int participantId, int exerciseId); void onNotification(const QString &name, QSqlDriver::NotificationSource source, const QVariant &payload); private: // attributes MainHandler *m_mainHandler; LtsWebSocket::LtsWebSocketServer *m_webSocketServer; LOGGER_T m_logger; }; // class DataManager } // namespace WsBaseDataInterface } // namespace WarehouseGuez