/* * 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 struct archive; struct archive_entry; namespace spdlog { class logger; } namespace OpenVulkano { class ArchiveBase { protected: archive* m_archive; archive_entry* m_archiveEntry; std::shared_ptr m_logger; bool ChkErr(long result) const; public: ArchiveBase(archive* arch, archive_entry* archEntry, const std::shared_ptr& logger); virtual ~ArchiveBase(); void SetLogger(const std::shared_ptr& logger) { m_logger = logger; } [[nodiscard]] std::shared_ptr GetLogger() const { return m_logger; } }; }