summaryrefslogtreecommitdiff
path: root/src/shared
diff options
context:
space:
mode:
Diffstat (limited to 'src/shared')
-rw-r--r--src/shared/directoryentry.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/shared/directoryentry.h b/src/shared/directoryentry.h
index 785c3ff6..0e6b20f0 100644
--- a/src/shared/directoryentry.h
+++ b/src/shared/directoryentry.h
@@ -217,8 +217,10 @@ public:
void clear();
bool isPopulated() const { return m_Populated; }
+ bool isTopLevel() const { return m_TopLevel; }
bool isEmpty() const { return m_Files.empty() && m_SubDirectories.empty(); }
+ bool hasFiles() const { return !m_Files.empty(); }
const DirectoryEntry *getParent() const { return m_Parent; }
@@ -247,6 +249,18 @@ public:
begin = m_SubDirectories.begin(); end = m_SubDirectories.end();
}
+ template <class F>
+ void forEachFile(F&& f) const
+ {
+ for (auto&& p : m_Files) {
+ if (auto file=m_FileRegister->getFile(p.second)) {
+ if (!f(*file)) {
+ break;
+ }
+ }
+ }
+ }
+
DirectoryEntry *findSubDirectory(const std::wstring &name) const;
DirectoryEntry *findSubDirectoryRecursive(const std::wstring &path);