#pragma once #include "logger.h" #include #include #include #include #include namespace DDSConnector { class DdsConnector; } namespace ComponentMonitor { class DdsHandler; class CheckmkHandler : public QObject { Q_OBJECT public: CheckmkHandler(); ~CheckmkHandler(); bool initialize(const QString &checkMkServerHostname, int checkMkServerPort, int checkIntervalSec); void run(); void stop(); bool doConnect(); public Q_SLOTS: void onImmediateGetStateRequested(); private: bool writeGetStateRequest(); Q_SIGNALS: void newState(QString hostname, bool state, long long lastCheck); private Q_SLOTS: void onTimeout(); void readData(); void onConnected(); void onStateChanged(const QAbstractSocket::SocketState &newState); void onSocketError(const QAbstractSocket::SocketError &socketError); protected: NGL::INGLLogger &m_logger; bool processLine(const QByteArray &line); private: QString m_checkMkHost; quint16 m_checkMkPort{0}; int m_checkIntervalSec{60}; int m_highFrequencyCheck{-1}; QTimer *m_timer{nullptr}; QTcpSocket *m_socket{nullptr}; }; }