#ifndef HASHCOMPARER_H
#define HASHCOMPARER_H

#include <QCoreApplication>
#include <QObject>
#include <QFile>
#include <Data/FileData.h>
#include <Core/dataparser.h>
#include <Core/tools.h>
#include <Widgets/updatenotifywidget.h>
#include <Widgets/updatenotifywidget.h>

class UpdateNotifyWidget;
class VersionContainer;
class HashComparer :public QObject
{
    Q_OBJECT
public:
    explicit HashComparer(DataParser *dataParser,QObject *parent = nullptr);
    void initialize(MainWindow* mainWindow,VersionContainer *versionContainer);
    void CompareDeltas();
    ~HashComparer();

    void showDeltas();
    void setWidget(UpdateNotifyWidget *updateWidget);
    quint16 getFileUpdateCount() const;
    QList<FileData> *getFilesForUpdate() const;
signals:
    void sigCallCheck();
    void sigHaveDelta();
private:
    UpdateNotifyWidget* updateWidget;
    QList<FileData> *filesForUpdate;
    DataParser *dataParser;
    VersionContainer *versionContainer;
};

#endif // HASHCOMPARER_H
