diff options
| author | Salanto <62221668+Salanto@users.noreply.github.com> | 2024-05-18 03:33:43 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-05-18 03:33:43 +0200 |
| commit | 51338e30e046f1a62c84049b34577f0f3b5db6e3 (patch) | |
| tree | 283c95f8f776ed852d03a816388695afd65c0f73 /src/networkmanager.h | |
| parent | 469e293a1885e49f1d5994d41ac7cfc9f4666952 (diff) | |
| parent | f9c7205210fb9f768f583065971ece09e6b5eb03 (diff) | |
Merge pull request #957 from AttorneyOnline/kaleidoscope
The Kaleidoscope - Hell, it's about time.
Diffstat (limited to 'src/networkmanager.h')
| -rw-r--r-- | src/networkmanager.h | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/src/networkmanager.h b/src/networkmanager.h new file mode 100644 index 0000000..4ec539f --- /dev/null +++ b/src/networkmanager.h @@ -0,0 +1,63 @@ +#pragma once + +#include "aoapplication.h" +#include "aopacket.h" +#include "net/netconnection.h" + +#include <QDnsLookup> +#include <QNetworkAccessManager> +#include <QTime> +#include <QTimer> +#include <QtWebSockets/QWebSocket> + +#include <cstring> + +enum MSDocumentType +{ + PrivacyPolicy, + Motd, + ClientVersion +}; + +class NetworkManager : public QObject +{ + Q_OBJECT + +public: + explicit NetworkManager(AOApplication *parent); + + void connect_to_server(ServerInfo p_server); + void disconnect_from_server(); + + QString get_user_agent() const; + +public Q_SLOTS: + void get_server_list(); + void ship_server_packet(AOPacket packet); + void join_to_server(); + void handle_server_packet(AOPacket packet); + + void request_document(MSDocumentType document_type, const std::function<void(QString)> &cb); + void send_heartbeat(); + +Q_SIGNALS: + void server_connected(bool state); + +private Q_SLOTS: + void ms_request_finished(QNetworkReply *reply); + +private: + AOApplication *ao_app; + QNetworkAccessManager *http; + + NetConnection *m_connection = nullptr; + + QTimer *heartbeat_timer; + + const QString DEFAULT_MS_BASEURL = "http://servers.aceattorneyonline.com"; + QString ms_baseurl = DEFAULT_MS_BASEURL; + + const int heartbeat_interval = 60 * 5 * 1000; + + unsigned int s_decryptor = 5; +}; |
