#ifndef SENDSYSTEM_H #define SENDSYSTEM_H #include #include #include #include #include #include #include #include class DataParser; class FileData; class SendSystem : public QObject { Q_OBJECT public: explicit SendSystem(QObject* parent = nullptr); void initialize(DataParser* dataParser,QMutex *globalMutex); void setClient(Client* client,QTcpSocket *socket); void sendMessageBlock(QString message); void sendFileBlock(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 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 fileSendList, QList deleteList); bool getIsSendStopped() const; ~SendSystem(); void updateFilesFULL(QList fileSendList, QList deleteList); public slots: void socketClose(); void sendVersion(); 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; quint64 fileSize; QMutex *mutex; QWaitCondition *waitCondition; int countSend; bool isSendStopped; TypeClientAutorization type; }; #endif // SENDSYSTEM_H