diff options
| author | isanae <14251494+isanae@users.noreply.github.com> | 2020-01-14 16:52:33 -0500 |
|---|---|---|
| committer | isanae <14251494+isanae@users.noreply.github.com> | 2020-02-04 03:33:19 -0500 |
| commit | 08188830a3cf67924980b4183e2ca7a4b5e12c3d (patch) | |
| tree | 95f9213db85466dae4d68c7b92f3db94a9b7ba4b /src/shared/directoryentry.h | |
| parent | aa63bffd350727041e8fdd4a7fc884fda80a0a4a (diff) | |
removed LEAK_TRACE stuff
refactored DirectoryEntry for lookup maps
filetreemodel: made ensureLoaded() a no-op while refreshing, faster processing for removing rows
Diffstat (limited to 'src/shared/directoryentry.h')
| -rw-r--r-- | src/shared/directoryentry.h | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/src/shared/directoryentry.h b/src/shared/directoryentry.h index 98366493..91c2a140 100644 --- a/src/shared/directoryentry.h +++ b/src/shared/directoryentry.h @@ -67,7 +67,6 @@ public: FileEntry();
FileEntry(Index index, const std::wstring &name, DirectoryEntry *parent);
- ~FileEntry();
Index getIndex() const
{
@@ -160,7 +159,6 @@ class FilesOrigin public:
FilesOrigin();
FilesOrigin(const FilesOrigin &reference);
- ~FilesOrigin();
// sets priority for this origin, but it will overwrite the existing mapping
// for this priority, the previous origin will no longer be referenced
@@ -226,7 +224,6 @@ class FileRegister {
public:
FileRegister(boost::shared_ptr<OriginConnection> originConnection);
- ~FileRegister();
bool indexValid(FileEntry::Index index) const;
@@ -351,7 +348,8 @@ public: std::vector<DirectoryEntry*>::const_iterator &begin,
std::vector<DirectoryEntry*>::const_iterator &end) const
{
- begin = m_SubDirectories.begin(); end = m_SubDirectories.end();
+ begin = m_SubDirectories.begin();
+ end = m_SubDirectories.end();
}
template <class F>
@@ -442,7 +440,8 @@ public: private:
using FilesMap = std::map<std::wstring, FileEntry::Index>;
using FilesLookup = std::unordered_map<FileKey, FileEntry::Index>;
- using SubDirectoriesMap = std::unordered_map<std::wstring, DirectoryEntry*>;
+ using SubDirectories = std::vector<DirectoryEntry*>;
+ using SubDirectoriesLookup = std::unordered_map<std::wstring, DirectoryEntry*>;
boost::shared_ptr<FileRegister> m_FileRegister;
boost::shared_ptr<OriginConnection> m_OriginConnection;
@@ -450,8 +449,8 @@ private: std::wstring m_Name;
FilesMap m_Files;
FilesLookup m_FilesLookup;
- std::vector<DirectoryEntry*> m_SubDirectories;
- SubDirectoriesMap m_SubDirectoriesMap;
+ SubDirectories m_SubDirectories;
+ SubDirectoriesLookup m_SubDirectoriesLookup;
DirectoryEntry *m_Parent;
std::set<int> m_Origins;
@@ -479,6 +478,13 @@ private: const std::wstring &path, bool create, int originID = -1);
void removeDirRecursive();
+
+ void addDirectoryToList(DirectoryEntry* e);
+ void removeDirectoryFromList(SubDirectories::iterator itor);
+
+ void addFileToList(const FileEntry& f);
+ void removeFileFromList(FileEntry::Index index);
+ void removeFilesFromList(const std::set<FileEntry::Index>& indices);
};
} // namespace MOShared
|
