diff options
| author | Dan Engelbrecht <[email protected]> | 2022-05-09 14:00:53 +0200 |
|---|---|---|
| committer | GitHub <[email protected]> | 2022-05-09 14:00:53 +0200 |
| commit | 007d72930c8a5813de8a202e06b8b18f296b94ed (patch) | |
| tree | eea01d61b83c94f2d344392eda0a9b1a06a805a8 /zenstore/blockstore.cpp | |
| parent | Merge pull request #90 from EpicGames/de/simplify-cache-bucket-put-standalone (diff) | |
| parent | remove use of Ref<> in ZenCacheStore (diff) | |
| download | zen-007d72930c8a5813de8a202e06b8b18f296b94ed.tar.xz zen-007d72930c8a5813de8a202e06b8b18f296b94ed.zip | |
Merge pull request #89 from EpicGames/de/namespacesv1.0.1.5
Add namespacecachestore layer to allow multiple structured cache namespaces
Diffstat (limited to 'zenstore/blockstore.cpp')
| -rw-r--r-- | zenstore/blockstore.cpp | 40 |
1 files changed, 10 insertions, 30 deletions
diff --git a/zenstore/blockstore.cpp b/zenstore/blockstore.cpp index 1946169c4..d490678b5 100644 --- a/zenstore/blockstore.cpp +++ b/zenstore/blockstore.cpp @@ -162,7 +162,7 @@ BlockStore::Initialize(const std::filesystem::path& BlocksBasePath, { continue; } - std::string FileName = Path.stem().string(); + std::string FileName = PathToUtf8(Path.stem()); uint32_t BlockIndex; bool OK = ParseHexNumber(FileName, BlockIndex); if (!OK) @@ -1053,35 +1053,15 @@ namespace { std::vector<std::filesystem::path> GetDirectoryContent(std::filesystem::path RootDir, bool Files, bool Directories) { - FileSystemTraversal Traversal; - struct Visitor : public FileSystemTraversal::TreeVisitor - { - virtual void VisitFile(const std::filesystem::path& Parent, const path_view& File, uint64_t) override - { - if (Files) - { - Items.push_back(Parent / File); - } - } - - virtual bool VisitDirectory(const std::filesystem::path& Parent, const path_view& Dir) override - { - if (Directories) - { - Items.push_back(Parent / Dir); - } - return true; - } - - bool Files; - bool Directories; - std::vector<std::filesystem::path> Items; - } Visit; - Visit.Files = Files; - Visit.Directories = Directories; - - Traversal.TraverseFileSystem(RootDir, Visit); - return Visit.Items; + DirectoryContent DirectoryContent; + GetDirectoryContent(RootDir, + DirectoryContent::RecursiveFlag | (Files ? DirectoryContent::IncludeFilesFlag : 0) | + (Directories ? DirectoryContent::IncludeDirsFlag : 0), + DirectoryContent); + std::vector<std::filesystem::path> Result; + Result.insert(Result.end(), DirectoryContent.Directories.begin(), DirectoryContent.Directories.end()); + Result.insert(Result.end(), DirectoryContent.Files.begin(), DirectoryContent.Files.end()); + return Result; }; static IoBuffer CreateChunk(uint64_t Size) |