/** * MainHandler for VideoOverlayManagement * $Id$ * $HeadURL$ * $Author$ * Created by hjl, SLSE, 2016-06-23 */ #pragma once #include #include "avs_interface.h" #include "handler_participant_data.h" #include "handler_infrastructure_data.h" #include "handler_overlays.h" #include "dds_handler.h" #include "logger.h" class QTimer; namespace VideoOverlayManagement { // Forwarddeclarations class AvsInterface; class MainHandler : public QObject { Q_OBJECT public: explicit MainHandler(QObject *parent = nullptr); ~MainHandler(); bool init(int domainId, int exerciseId); private Q_SLOTS: /** * Handle signals for AVS Handling */ void onAvsIfConnectionState(AvsIfConnectionState state); void onAvsCmdState(AvsCmdState state); void onAvsKeepAliveTimeout(); bool onTryToInitOverlayHandler(); ///< Initialize OverlayHandler after sucessfully AVS connection /** * Sends a keep alive request to the server. Normally this method is * called periodically by the KeepAliveTimer. */ void onSendKeepAlive(); private: // attributes int m_exerciseId; ///< Exercise id AvsInterface *m_avsIf; ///< Pointer to AVS-Interface AvsIfConnectionState m_avsConnectionState; ///< AVS connection state std::shared_ptr m_ddsHandler; ///< Pointer to DDS handler std::shared_ptr m_handlerParticipantData; ///< Pointer to participant data handler std::shared_ptr m_handlerInfrastructureData; ///< Pointer to infrastructure data handler std::unique_ptr m_handlerOverlays; ///< Pointer to overlay handler QTimer *m_checkConnectTimer; ///< Wait for AVS connected. QTimer *m_keepAliveTriggerTimer; ///< Timer for triggering the keep alive request bool m_bAvsSocketWarnedOnce; NGL::INGLLogger &m_logger; ///< Interface to the Logging-Facility }; } // namespace VideoOverlayManagement