Pith - whittle
whittle/src/core/ScanController.h [1.1 kb]
Modified: 20:17:01 158 026 (24 Aug 026)
5 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
Stave - Android 158.026
Kerf - Android 157.026
Kiln - Android 157.026
Wedge - Android 156.026
Whittle - Linux 155.026

Menu
Calendar
Project Tin (024/029)
Miter
RSS Feed
User Avatar
@vgmlr
=SUM(parts)
0.00163
260,136 (+550)