From 5c132ecd772eca38df0e0dfaeef19c6dfc24b9b5 Mon Sep 17 00:00:00 2001 From: Georg Hagen Date: Sun, 9 Feb 2025 17:32:19 +0100 Subject: [PATCH] Add callback option for extract all --- openVulkanoCpp/IO/Archive/ArchiveReader.cpp | 12 ++++++++++++ openVulkanoCpp/IO/Archive/ArchiveReader.hpp | 2 ++ 2 files changed, 14 insertions(+) diff --git a/openVulkanoCpp/IO/Archive/ArchiveReader.cpp b/openVulkanoCpp/IO/Archive/ArchiveReader.cpp index 2eeec6a..3acdc63 100644 --- a/openVulkanoCpp/IO/Archive/ArchiveReader.cpp +++ b/openVulkanoCpp/IO/Archive/ArchiveReader.cpp @@ -216,6 +216,18 @@ namespace OpenVulkano } return count; } + + size_t ArchiveReader::ExtractRemaining(const std::filesystem::path& targetDir, const std::function extractionCallback) + { + size_t count = 0; + std::optional fd; + while (fd = ExtractNext(targetDir)) + { + extractionCallback(fd.value()); + count++; + } + return count; + } bool ArchiveReader::HasNext() const { diff --git a/openVulkanoCpp/IO/Archive/ArchiveReader.hpp b/openVulkanoCpp/IO/Archive/ArchiveReader.hpp index c66abb2..a7f05e9 100644 --- a/openVulkanoCpp/IO/Archive/ArchiveReader.hpp +++ b/openVulkanoCpp/IO/Archive/ArchiveReader.hpp @@ -55,6 +55,8 @@ namespace OpenVulkano [[deprecated]] size_t ExtractRemaining(std::string_view targetDir); size_t ExtractRemaining(const std::filesystem::path& targetDir); + + size_t ExtractRemaining(const std::filesystem::path& targetDir, const std::function extractionCallback); // Element wise operations [[nodiscard]] bool HasNext() const;