#ifndef UPDATECONTROLLER_H #define UPDATECONTROLLER_H #include #include #include #include #include #include #include #include #include #include #include #include #include "fasthashcalculator.h" 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); 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 getClientDataList() const; QString getCurrentStreamingPath() const; QList prepareRealPathList(QList fileData); ~UpdateController(); DataInfo *getCurrentDataInfo(); void clearCurrentDataInfo(); void xmlFileDataParse(QByteArray array); QString getPathAdditionalFile(QString name); QString getPathScensFile(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 sigErrorRequired(int code); void sigUpdateDocs(); void sigInitializeFinished(); private: QList clientDataList; QList serverDataList; DataInfo *dataInfo; QString buildPath; QString currentStreamingPath; QString sharedDataPath; CommonClientHandler *commonClientHandler; FastHashCalculator *hashCalculator; 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