This commit is contained in:
2026-02-19 12:26:46 +03:00
parent 517515e94e
commit a1f3e04fad
4 changed files with 274 additions and 394 deletions

View File

@@ -13,9 +13,9 @@
class DataParser;
class FileData;
class SendSystem : public QObject
{
Q_OBJECT
public:
explicit SendSystem(QObject* parent = nullptr);
@@ -24,58 +24,57 @@ public:
void initialize(DataParser* dataParser,QMutex *globalMutex);
void setClient(Client* client,QTcpSocket *socket);
void sendMessageBlock(QString message);
void sendFileBlock(QString path);
void sendFileBlock_V2(QString path);
void sendFileBlock_V3(QString path);
void sendFileBlockByteArray(QByteArray array, PacketType packetType);
void sendFileBlockWithRename(QString path,QString newName);
void sendFolderBlock(QString path);
void sendDeleteBlock(QString path);
void sendPacketType(PacketType packet);
void sendNotify(QString notify);
void sendStop();
void sendCFI(QByteArray array);
void sendDocs(QString docPath);
void sendXmlAnswer(QByteArray array, PacketType packetType = PacketType::TYPE_XMLANSWER);
void sendNeedUpdate(bool flag,quint64 size,quint64 fileCount,quint64 deleteCount);
void updateFiles(QList<FileData> fileSendList, QList<FileData> deleteList);
bool getIsSendStopped() const;
void updateFilesFULL(QList<FileData> fileSendList, QList<FileData> deleteList);
private:
bool waitWrittenData(QString marker, int msec = 500);
public slots:
void socketClose();
void sendVersion();
public slots:
void slot_BytesWrittenToSocket(qint64 bytes);
bool slot_getIsSendingStopped() const;
void slot_stopSending();
void slot_socketClose();
void slot_sendVersion();
void slot_sendNotify(QString notify);
void slot_sendPacketType(PacketType packet);
void slot_sendXmlAnswer(QByteArray array, PacketType packetType = PacketType::TYPE_XMLANSWER);
void slot_sendDocs(QString docPath);
void slot_sendNeedUpdate(bool flag,quint64 size,quint64 fileCount,quint64 deleteCount);
void slot_sendFolderBlock(QString path);
void slot_sendDeleteBlock(QString path);
void slot_sendFileBlock(QString path);
void slot_sendFileBlock_V3(QString path);
void slot_sendFileBlockByteArray(QByteArray array, PacketType packetType);
void slot_sendFileBlockWithRename(QString path,QString newName);
signals:
void sigLoadHash();
//QByteArray sigSendXMLmessage(QString loginFrom, QString loginTo, QString text, QString userType); //сигнал не используется
QByteArray sigSendNotify(QString message);
//QByteArray sigSendVersion(); //сигнал не используется
private:
Client *client;
QTcpSocket* socket;
DataParser* dataParser;
QMutex *globalMutex;
QWaitCondition *waitCondition;
QMutex *globalMutex; //Не используется (но пока оставлен)
char* buffer;
TypeClientAutorization type;
bool isSendStopped;
bool flWaitWriten;
bool flSendingStopped;
quint64 fileSize;
bool flWaitWritenToSocket;
qint64 bytesWritedToSocket;
qint64 fileSize;
int countSend;
};