-
Notifications
You must be signed in to change notification settings - Fork 1
/
netcontroller.h
57 lines (48 loc) · 1.56 KB
/
netcontroller.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#ifndef NETCONTROLLER_H
#define NETCONTROLLER_H
#include <QObject>
#include <QNetworkAccessManager>
#include <QNetworkRequest>
#include <QNetworkReply>
#include <QTimer>
class NetController : public QObject
{
Q_OBJECT
public:
explicit NetController(QByteArray username, QByteArray password, QObject *parent = nullptr);
void checkState();
void sendCheckRequest();
void sendLoginRequest();
void sendLogoutRequest(bool isAll = false);
inline void setUsername(QByteArray newName) { username = newName; }
inline void setPassword(QByteArray newPass) { password = newPass; }
inline void setTotalTraffic(int newTraffic) { traffic = newTraffic; }
inline void setMobile(bool isMobile) { this->isMobile = isMobile; }
inline bool getMobile() { return this->isMobile; }
enum State
{
Unknown,
Offline,
Online,
Disconnected,
Owed,
WrongPass
};
private:
QString checkUrl = "http://ipgw.neu.edu.cn/include/auth_action.php";
QString desktopLoginUrl = "http://ipgw.neu.edu.cn/srun_portal_pc.php?ac_id=1&";
QString mobileLoginUrl = "http://ipgw.neu.edu.cn/srun_portal_phone.php?ac_id=1&";
QString offlineString = "not_online";
QByteArray checkParam, username, password;
int traffic;
bool isMobile;
int onlineCount = 0, offlineCount = 0, disconnectCount = 0;
QNetworkAccessManager manager;
QNetworkRequest desktopRequest, mobileRequest;
signals:
void sendState(State newState);
void sendInfo(QString mb, QString sec, QString balance, QString ip);
public slots:
void handleResponse(QNetworkReply *reply);
};
#endif // NETCONTROLLER_H