#ifndef UPDATECONTROLLER_H #define UPDATECONTROLLER_H #include #include #include #include #include #include #include #include #include #include #include #include class TCPServer; class SendSystem; class DataParser; class ClientHandler; class AssetsManager; class ServerLMSWidget; class CommonClientHandler; class Logger; class UpdateController : public QObject { Q_OBJECT public: explicit UpdateController(QObject *parent = 0); void initialize(CommonClientHandler* commonClientHandler,DataParser *dataParser,AssetsManager *assetManager,Logger *logger); void compareFiles(ClientHandler* handler, QByteArray array); void showHash(); void calculateFullHash(); void calculateFullHashWithSetup(); void calculateSharedHash(); void sendNewVersionList(); void setCurrentStreamingPath(QString path); bool checkDuplicate(QString versionName); QList* calculateHash(QString path); QByteArray getLocalHash(); QString getCurrentVersionName(); QList getFileSendList(); QList getClientDataList() const; QList getFileDeleteList() const; QString getCurrentStreamingPath() const; ~UpdateController(); DataInfo *getCurrentDataInfo(); void clearCurrentDataInfo(); void xmlFileDataParse(QByteArray array); QString getPathAdditionalFile(QString name); StreamingVersionData *getCurrentVersion(); void setDataInfo(DataInfo *value); public slots: void changeAssetVersion(QString versionName); void createCopyVersion(QString versionName,QString newVersionName,QString author); void deleteAssetVersion(QString versionName); void setUpCurrentServerHash(); signals: void sigLogMessage(QString message); void sigErrorRequired(int code); private: QList clientDataList; QList serverDataList; QList fileSendList; QList fileDeleteList; DataInfo *dataInfo; QString buildPath; QString currentStreamingPath; QString sharedDataPath; CommonClientHandler *commonClientHandler; DataParser *dataParser; AssetsManager *assetManager; quint64 sizeToSend; QMutex *mutex; QString getCommands(); void printFileList(QList fileData); bool checkNeedUpdate(ClientHandler* handler); void setLocalFileData(QList dataList); void calculateSize(); void saveHash(QString fileName,QList *fileList); QList* loadHash(QString fileName); void CalculateSizeToSend(QList diffList); bool checkRequiredFolder(); void calculateCurrentSharedHash(); }; #endif // UPDATECONTROLLER_H