/** * @RDE_HEADER@ * VapixConfig configurates Axis Cameras through Axis HTTP API Vapix * $Id$ * $HeadURL$ * $Author$ * Created by Terrell Scharfenberg, SLSE, 2016-05-27 */ #pragma once #include #include #include class QNetworkAccessManager; namespace VapixConfig { class HTTPRequestHandler; class Config; class VapixConfig : public QObject { Q_OBJECT public: VapixConfig(QNetworkAccessManager *networkAccessManager, QObject *parent = nullptr); ~VapixConfig(); void init(const QString &ip, const QString &password, const QString &username); bool setConfig(const QString &xmlString); void getConfig(); void saveConfig(const QString &savePath); void resetConfig(); void startRequests(); Q_SIGNALS: void setConfigFinished(); void setConfigError(const QString &error); void getConfigFinished(const QString &xmlString); void getConfigError(const QString &error); void requestsFinished(); private Q_SLOTS: void startNextRequest(); void configError(const QString &error); private: QQueue m_requestQueue; QNetworkAccessManager *m_networkAccessManager; HTTPRequestHandler *m_requestHandler; QString m_ip; QString m_password; QString m_username; Config *m_config; }; } // namespace VapixConfig