9#include <PhosphorFsLoader/phosphorfsloader_export.h>
11#include <QtCore/QList>
12#include <QtCore/QObject>
13#include <QtCore/QString>
14#include <QtCore/QStringList>
133 static constexpr qint64 kMaxFileBytes = 1 * 1024 * 1024;
138 static constexpr int kMaxEntries = 10'000;
179 class JsonScanStrategy;
180 std::unique_ptr<JsonScanStrategy> m_strategy;
181 std::unique_ptr<WatchedDirectorySet> m_watcher;
Generic JSON-directory loader with debounced live reload.
Definition DirectoryLoader.h:51
void setMaxEntriesForTest(int cap)
Test-only: override the per-rescan entry cap (default kMaxEntries).
void entriesChanged()
Fired after every rescan, coalesced by the 50 ms debounce — regardless of whether the discovered entr...
void setDebounceIntervalForTest(int ms)
Test-only: override the debounce interval (default 50 ms).
DirectoryLoader(IDirectoryLoaderSink &sink, QObject *parent=nullptr)
Construct with a borrowed sink.
bool hasParentWatchForTest(const QString &path) const
Test-only: parent-watch introspection forwarded to the underlying WatchedDirectorySet.
QList< Entry > entries() const
Current entries (post last rescan), sorted by key for deterministic order across platforms and Qt ver...
int registeredCount() const
Count of entries currently tracked by the loader.
int loadFromDirectory(const QString &directory, LiveReload liveReload=LiveReload::Off)
Register a directory for scanning + (optionally) watching.
DirectoryLoader(const DirectoryLoader &)=delete
int loadFromDirectories(const QStringList &directories, LiveReload liveReload=LiveReload::Off, RegistrationOrder order=RegistrationOrder::LowestPriorityFirst)
Register multiple directories in caller-declared priority order.
~DirectoryLoader() override
void requestRescan()
Trigger a debounced rescan.
QString watchedAncestorForTest(const QString &target) const
Test-only: ancestor-watch introspection forwarded to the underlying WatchedDirectorySet.
DirectoryLoader & operator=(const DirectoryLoader &)=delete
Consumer-supplied strategy for a DirectoryLoader.
Definition IDirectoryLoaderSink.h:32
Definition DirectoryLoader.h:18
RegistrationOrder
Caller's declared priority direction for registerDirectories / setDirectories input.
Definition WatchedDirectorySet.h:58
LiveReload
Opt-in policy for directory watching.
Definition WatchedDirectorySet.h:34
Tracked entry — mirrors ParsedEntry minus the payload.
Definition DirectoryLoader.h:58
QString systemSourcePath
Definition DirectoryLoader.h:61
QString key
Definition DirectoryLoader.h:59
QString sourcePath
Definition DirectoryLoader.h:60