diff options
author | Petr Mrázek <peterix@gmail.com> | 2016-11-20 12:32:27 +0100 |
---|---|---|
committer | Petr Mrázek <peterix@gmail.com> | 2016-11-21 01:19:22 +0100 |
commit | 2f8c752d1fe9976fdbd683d34ae3dcbf4e797591 (patch) | |
tree | 2b9fbba468b93accbf9affb07f9ea3b5f9938c66 /libraries/ganalytics/src/ganalytics_worker.h | |
parent | 2ec15c32e4419c94995f78b1d1ef8790e71b3317 (diff) | |
download | PrismLauncher-2f8c752d1fe9976fdbd683d34ae3dcbf4e797591.tar.gz PrismLauncher-2f8c752d1fe9976fdbd683d34ae3dcbf4e797591.tar.bz2 PrismLauncher-2f8c752d1fe9976fdbd683d34ae3dcbf4e797591.zip |
NOISSUE reformat and sanitize ganalytics
Diffstat (limited to 'libraries/ganalytics/src/ganalytics_worker.h')
-rw-r--r-- | libraries/ganalytics/src/ganalytics_worker.h | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/libraries/ganalytics/src/ganalytics_worker.h b/libraries/ganalytics/src/ganalytics_worker.h new file mode 100644 index 00000000..280f9ab2 --- /dev/null +++ b/libraries/ganalytics/src/ganalytics_worker.h @@ -0,0 +1,61 @@ +#pragma once + +#include <QUrlQuery> +#include <QDateTime> +#include <QTimer> +#include <QNetworkRequest> +#include <QQueue> + +struct QueryBuffer +{ + QUrlQuery postQuery; + QDateTime time; +}; + +class GAnalyticsWorker : public QObject +{ + Q_OBJECT + +public: + explicit GAnalyticsWorker(GAnalytics *parent = 0); + + GAnalytics *q; + + QNetworkAccessManager *networkManager = nullptr; + + QQueue<QueryBuffer> m_messageQueue; + QTimer m_timer; + QNetworkRequest m_request; + GAnalytics::LogLevel m_logLevel; + + QString m_trackingID; + QString m_clientID; + QString m_userID; + QString m_appName; + QString m_appVersion; + QString m_language; + QString m_screenResolution; + QString m_viewportSize; + + bool m_isSending; + + const static int fourHours = 4 * 60 * 60 * 1000; + const static QLatin1String dateTimeFormat; + +public: + void logMessage(GAnalytics::LogLevel level, const QString &message); + + QUrlQuery buildStandardPostQuery(const QString &type); + QString getScreenResolution(); + QString getUserAgent(); + QList<QString> persistMessageQueue(); + void readMessagesFromFile(const QList<QString> &dataList); + + void enqueQueryWithCurrentTime(const QUrlQuery &query); + void setIsSending(bool doSend); + +public slots: + void postMessage(); + void postMessageFinished(); +}; + |