Pith - whittle
whittle/src/core/ScanController.h [1.1 kb]
Modified: 19:51:42 130 026 (27 Jul 026)
0 Days Ago
#pragma once
#include "core/Comparator.h"
#include "core/FilterSettings.h"
#include "model/FileRecord.h"
#include <atomic>
#include <QHash>
#include <QMetaType>
#include <QSet>
#include <QStringList>
#include <QThread>

namespace whittle {

using FileMap = QHash<QString, FileRecord>;

class ScanController : public QThread {
    Q_OBJECT
public:
    ScanController(QStringList sourceRoots, QSet<QString> excluded,
                   bool recursive,
                   QString usbMount, FilterSettings filter,
                   QObject* parent = nullptr);
    void cancel() { m_cancel.store(true, std::memory_order_relaxed); }

signals:
    void progress(int folders, int files, qint64 bytes);
    void resultsReady(whittle::DiffResult result,
                      whittle::FileMap sourceMap, whittle::FileMap usbMap);
    void canceled();

protected:
    void run() override;

private:
    QStringList m_roots;
    QSet<QString> m_excluded;
    bool        m_recursive;
    QString     m_usb;
    FilterSettings m_filter;
    std::atomic<bool> m_cancel{false};
};

} 

Q_DECLARE_METATYPE(whittle::FileMap)
Q_DECLARE_METATYPE(whittle::DiffResult)
Updates
Whittle - Linux 130.026
Wedge - Android 126.026
Wedge - Linux 124.026
Shim - Android 117.026
Miter - 114.026
Dev
TVShow (227) 'CSA'
TVShow (228) 'APT'
TVProgram (83) 'BXT'
Miter Update(s)
Peen (Messaging)

Menu
Calendar
Project Tin (024/029)
Miter
RSS Feed