Files
RRJServer/Server/clienthandler/clienthandler.h
2025-12-05 11:48:24 +03:00

92 lines
2.6 KiB
C++

#ifndef CLIENTHANDLER_H
#define CLIENTHANDLER_H
#include <QObject>
#include <QTcpSocket>
#include <QThread>
#include <Systems/sendsystem.h>
#include <Systems/tools.h>
#include <Data/Client.h>
#include <Data/PacketType.h>
class SendSystem;
class DataParser;
class Logger;
class ServerLMSWidget;
class UpdateController;
class RecognizeSystem;
class ClientAnswerParser;
class ClientHandler : public QObject
{
Q_OBJECT
public:
ClientHandler(QObject* parent = nullptr);
void initSender(DataParser *dataParser);
void sendXmlAnswer(QByteArray array, PacketType packetType = PacketType::TYPE_XMLANSWER);
void sendFolderBlock(QString path);
void sendFileBlock(QString path);
void sendFileBlockByteArray(QByteArray array, PacketType packetType);
bool getIsSendStopped();
void sendDeleteBlock(QString path);
void sendFinish();
void sendNotify(QString text);
void sendNeedUpdate(bool flag, quint64 size,quint64 fileCount,quint64 deleteCount);
void sendDisable();
void recognize();
void sendHash();
void sendVersionList();
void sendPacketType(PacketType packetType);
void sendVersion();
void setReady(bool flag);
~ClientHandler();
Client *getClient() const;
SendSystem *getSendSystem() const;
QTcpSocket *getSocket() const;
signals:
void sigSendXmlAnswer(QByteArray array, PacketType packetType);
void sigInitSender (DataParser *dataParse, QMutex *mutex);
void sigFolderBlock(QString path);
void sigFileBlock(QString path);
void sigFileBlockByteArray(QByteArray array, PacketType packetType);
bool sigGetIsSendStopped();
void sigSendDeleteBlock(QString path);
void sigNeedUpdate(bool flag,quint64 size,quint64 fileCount,quint64 deleteCount);
void sigClientDisconnected(QString address,QString port);
void sigSendHash();
void sigRecognize(ClientHandler *handler);
void sigSendNotify(QString notify);
void sigSendFileBlockWithRename (QString path,QString newName);
void sigSocketClose();
bool sigSocketFlush();
void sigSendVersion();
void sigSendPacketType(PacketType packetType);
void sigSendStop();
public :
QThread *thread;
QTcpSocket *socket;
void initialize(int descriptor, ServerLMSWidget *serverWidget,
UpdateController *updateController, DataParser *dataParser);
void setClient(Client *value);
private:
UpdateController *updateController;
RecognizeSystem *recognizeSystem;
Client *client;
SendSystem *sendSystem;
ServerLMSWidget *server;
void initClientType();
void packetTypeInit(PacketType packet, Client *client);
};
#endif // CLIENTHANDLER_H