/* * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ #pragma once #include "IO/FileDescription.hpp" #include #include #include namespace OpenVulkano { class ZipWriter { std::vector m_centralDirs; int m_numFiles = 0; bool m_pad = false; FILE* m_file; public: ZipWriter(const std::filesystem::path& filePath, bool alignHeadersby64 = false); ~ZipWriter(); bool IsOpen() const { return m_file != nullptr; } operator bool() const { return IsOpen(); } void AddFile(const FileDescription& description, const void* buffer); void AddFile(const std::filesystem::path& fileName, const char* inArchiveName); }; }