#ifndef UPDATED_CONFIG_H #define UPDATED_CONFIG_H #include #include "Config.h" #include "SslClient.h" class QTimer; class UpdatedConfig: public QObject, public Config { Q_OBJECT public: /** * @brief Retrieve application-wide instance of Config class * @return Pointer to singleton instance of Config class */ static UpdatedConfig *CurrentConfig(); private: UpdatedConfig(); /** * @brief Pointer to the singleton Config instance */ static UpdatedConfig *self; /** * @brief SslCLient instance that connects to server and retrieves config */ SslClient *client; /** * @brief timer that is responsible on config updates */ QTimer *configUpdateTimer; /** * @brief bool value that is true if config is actual and was updated recently
* and false if it isn't actual and has to be updated */ bool configValid; /** * @brief Count time between subsequent request retries */ unsigned time; /** * @brief index of Config::servers that is currently being tried to connect or being worked with */ unsigned activeSrvIndex; /** * @brief value indicating whether last connetion attempt failed or not */ bool retryFailed; /** * @brief value indicating which config parts are already updated
* to check if some part is updated just apply && to this
* value and any of SslClient::RequestType values */ unsigned char updateStatus; private slots: void update(); void connectionError(); void gotServerReply(SslClient::RequestType &type, QByteArray &confdata); }; #endif