10#include <PhosphorFsLoader/phosphorfsloader_export.h>
12#include <QtCore/QList>
13#include <QtCore/QObject>
14#include <QtCore/QString>
15#include <QtCore/QStringList>
189 static constexpr int kMaxEntries = 10'000;
238 class JsonScanStrategy;
239 std::unique_ptr<JsonScanStrategy> m_strategy;
240 std::unique_ptr<WatchedDirectorySet> m_watcher;
Generic JSON-directory loader with debounced live reload.
Definition DirectoryLoader.h:52
void setMaxEntriesForTest(int cap)
Test-only: override the per-rescan entry cap (default kMaxEntries).
void entriesChanged()
Fired after every rescan — regardless of whether the discovered entry set or any underlying payload a...
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 rescanNow()
Rescan every registered directory synchronously, on the calling stack, cancelling any pending debounc...
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:19
RegistrationOrder
Caller's declared priority direction for registerDirectories / setDirectories input.
Definition WatchedDirectorySet.h:58
constexpr qint64 kMaxJsonFileBytes
Per-file size cap for JSON metadata reads.
Definition FileLimits.h:18
LiveReload
Opt-in policy for directory watching.
Definition WatchedDirectorySet.h:34
Tracked entry — mirrors ParsedEntry minus the payload.
Definition DirectoryLoader.h:59
QString systemSourcePath
Definition DirectoryLoader.h:62
QString key
Definition DirectoryLoader.h:60
QString sourcePath
Definition DirectoryLoader.h:61