mirror of
https://github.com/QuasarApp/Heart.git
synced 2025-05-16 11:29:43 +00:00
59 lines
1.3 KiB
C++
59 lines
1.3 KiB
C++
#ifndef CLIENT_H
|
|
#define CLIENT_H
|
|
|
|
#include "basenode.h"
|
|
#include "ratingusernode.h"
|
|
|
|
namespace NP {
|
|
|
|
|
|
class NETWORKPROTOCOLSHARED_EXPORT Client: public RatingUserNode
|
|
{
|
|
Q_OBJECT
|
|
Q_PROPERTY(int status READ status NOTIFY statusChanged)
|
|
Q_PROPERTY(QString lastMessage READ lastMessage WRITE setLastMessage NOTIFY lastMessageChanged)
|
|
|
|
public:
|
|
enum Status {
|
|
Offline,
|
|
Online,
|
|
Logined
|
|
};
|
|
|
|
explicit Client(const QHostAddress& address, unsigned short port);
|
|
explicit Client(const QString& address, unsigned short port);
|
|
|
|
bool connectClient();
|
|
void setHost(const QHostAddress& address, unsigned short port);
|
|
bool login(const QString& userMail, const QByteArray& rawPath);
|
|
bool logout();
|
|
bool syncUserData();
|
|
|
|
Q_INVOKABLE int status() const;
|
|
Q_INVOKABLE QString lastMessage() const;
|
|
|
|
private slots:
|
|
void handleIncomingData(SP<AbstractData> obj, const QHostAddress &);
|
|
void setLastMessage(QString lastMessage);
|
|
void socketStateChanged(QAbstractSocket::SocketState);
|
|
|
|
private:
|
|
Status _status = Offline;
|
|
QHostAddress _address;
|
|
unsigned short _port;
|
|
|
|
QString _lastMessage;
|
|
SP<UserData> _user;
|
|
|
|
void setStatus(Status);
|
|
|
|
signals:
|
|
void statusChanged(int status);
|
|
|
|
void lastMessageChanged(QString lastMessage);
|
|
};
|
|
|
|
}
|
|
|
|
#endif // CLIENT_H
|