diff options
Diffstat (limited to 'src/shared/directoryentry.h')
| -rw-r--r-- | src/shared/directoryentry.h | 14 |
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);
|
