From 9cd9af61cf3dcf7f719911ee95398974b94ef3de Mon Sep 17 00:00:00 2001 From: Lioncash Date: Wed, 15 Aug 2018 23:47:18 -0400 Subject: [PATCH] core/file_sys: Replace includes with forward declarations where applicable Avoids proliferating includes through other headers, lessening the total amount of files that need to be rebuilt if those headers are changed. This also resolves a few indirect inclusions. --- src/core/file_sys/bis_factory.cpp | 1 + src/core/file_sys/bis_factory.h | 5 +++-- src/core/file_sys/content_archive.cpp | 1 + src/core/file_sys/content_archive.h | 1 - src/core/file_sys/nca_metadata.cpp | 2 +- src/core/file_sys/nca_metadata.h | 2 +- src/core/file_sys/registered_cache.h | 5 ++--- src/core/file_sys/romfs_factory.cpp | 3 +-- src/core/file_sys/romfs_factory.h | 7 +++++-- src/core/file_sys/savedata_factory.h | 2 ++ src/core/file_sys/sdmc_factory.cpp | 3 +-- src/core/file_sys/sdmc_factory.h | 1 + src/core/hle/service/filesystem/filesystem.cpp | 5 +++++ src/core/hle/service/filesystem/filesystem.h | 17 +++++++++++++---- src/core/hle/service/filesystem/fsp_srv.cpp | 1 + src/core/loader/deconstructed_rom_directory.cpp | 1 + src/core/loader/nca.cpp | 1 + src/yuzu/game_list.cpp | 2 ++ src/yuzu/main.cpp | 4 ++-- 19 files changed, 44 insertions(+), 20 deletions(-) diff --git a/src/core/file_sys/bis_factory.cpp b/src/core/file_sys/bis_factory.cpp index ae4e338003..8008db9833 100644 --- a/src/core/file_sys/bis_factory.cpp +++ b/src/core/file_sys/bis_factory.cpp @@ -3,6 +3,7 @@ // Refer to the license.txt file included. #include "core/file_sys/bis_factory.h" +#include "core/file_sys/registered_cache.h" namespace FileSys { diff --git a/src/core/file_sys/bis_factory.h b/src/core/file_sys/bis_factory.h index a970a5e2e4..32bbf254a2 100644 --- a/src/core/file_sys/bis_factory.h +++ b/src/core/file_sys/bis_factory.h @@ -5,11 +5,12 @@ #pragma once #include -#include "core/loader/loader.h" -#include "registered_cache.h" +#include "core/file_sys/vfs.h" namespace FileSys { +class RegisteredCache; + /// File system interface to the Built-In Storage /// This is currently missing accessors to BIS partitions, but seemed like a good place for the NAND /// registered caches. diff --git a/src/core/file_sys/content_archive.cpp b/src/core/file_sys/content_archive.cpp index 47afcad9bf..e56ab32dfb 100644 --- a/src/core/file_sys/content_archive.cpp +++ b/src/core/file_sys/content_archive.cpp @@ -9,6 +9,7 @@ #include "core/crypto/aes_util.h" #include "core/crypto/ctr_encryption_layer.h" #include "core/file_sys/content_archive.h" +#include "core/file_sys/partition_filesystem.h" #include "core/file_sys/romfs.h" #include "core/file_sys/vfs_offset.h" #include "core/loader/loader.h" diff --git a/src/core/file_sys/content_archive.h b/src/core/file_sys/content_archive.h index b82e65ad55..e993ace148 100644 --- a/src/core/file_sys/content_archive.h +++ b/src/core/file_sys/content_archive.h @@ -14,7 +14,6 @@ #include "common/swap.h" #include "control_metadata.h" #include "core/crypto/key_manager.h" -#include "core/file_sys/partition_filesystem.h" #include "core/loader/loader.h" namespace FileSys { diff --git a/src/core/file_sys/nca_metadata.cpp b/src/core/file_sys/nca_metadata.cpp index 4492444449..b8a4be9654 100644 --- a/src/core/file_sys/nca_metadata.cpp +++ b/src/core/file_sys/nca_metadata.cpp @@ -3,9 +3,9 @@ // Refer to the license.txt file included. #include +#include #include "common/common_funcs.h" #include "common/logging/log.h" -#include "common/swap.h" #include "content_archive.h" #include "core/file_sys/nca_metadata.h" diff --git a/src/core/file_sys/nca_metadata.h b/src/core/file_sys/nca_metadata.h index 88e66d4da1..d717654d1d 100644 --- a/src/core/file_sys/nca_metadata.h +++ b/src/core/file_sys/nca_metadata.h @@ -4,7 +4,7 @@ #pragma once -#include +#include #include #include #include "common/common_types.h" diff --git a/src/core/file_sys/registered_cache.h b/src/core/file_sys/registered_cache.h index a7c51a59c7..6217498847 100644 --- a/src/core/file_sys/registered_cache.h +++ b/src/core/file_sys/registered_cache.h @@ -11,15 +11,14 @@ #include #include #include -#include "common/common_funcs.h" #include "common/common_types.h" -#include "content_archive.h" +#include "core/file_sys/content_archive.h" #include "core/file_sys/nca_metadata.h" #include "core/file_sys/vfs.h" namespace FileSys { -class XCI; class CNMT; +class XCI; using NcaID = std::array; using RegisteredCacheParsingFunction = std::function; diff --git a/src/core/file_sys/romfs_factory.cpp b/src/core/file_sys/romfs_factory.cpp index 54fbd32674..8c8665aba6 100644 --- a/src/core/file_sys/romfs_factory.cpp +++ b/src/core/file_sys/romfs_factory.cpp @@ -2,11 +2,10 @@ // Licensed under GPLv2 or any later version // Refer to the license.txt file included. -#include -#include #include "common/common_types.h" #include "common/logging/log.h" #include "core/file_sys/romfs_factory.h" +#include "core/loader/loader.h" namespace FileSys { diff --git a/src/core/file_sys/romfs_factory.h b/src/core/file_sys/romfs_factory.h index c19787cd41..c0247c53b6 100644 --- a/src/core/file_sys/romfs_factory.h +++ b/src/core/file_sys/romfs_factory.h @@ -4,10 +4,13 @@ #pragma once -#include #include "common/common_types.h" +#include "core/file_sys/vfs.h" #include "core/hle/result.h" -#include "core/loader/loader.h" + +namespace Loader { +class AppLoader; +} namespace FileSys { diff --git a/src/core/file_sys/savedata_factory.h b/src/core/file_sys/savedata_factory.h index f3cf50d5ac..2dc4d2c965 100644 --- a/src/core/file_sys/savedata_factory.h +++ b/src/core/file_sys/savedata_factory.h @@ -6,8 +6,10 @@ #include #include +#include "common/common_funcs.h" #include "common/common_types.h" #include "common/swap.h" +#include "core/file_sys/vfs.h" #include "core/hle/result.h" namespace FileSys { diff --git a/src/core/file_sys/sdmc_factory.cpp b/src/core/file_sys/sdmc_factory.cpp index c1edfcef37..6a6de422f6 100644 --- a/src/core/file_sys/sdmc_factory.cpp +++ b/src/core/file_sys/sdmc_factory.cpp @@ -2,8 +2,7 @@ // Licensed under GPLv2 or any later version // Refer to the license.txt file included. -#include -#include "core/core.h" +#include #include "core/file_sys/sdmc_factory.h" namespace FileSys { diff --git a/src/core/file_sys/sdmc_factory.h b/src/core/file_sys/sdmc_factory.h index 9f0c75e846..245060690a 100644 --- a/src/core/file_sys/sdmc_factory.h +++ b/src/core/file_sys/sdmc_factory.h @@ -4,6 +4,7 @@ #pragma once +#include "core/file_sys/vfs.h" #include "core/hle/result.h" namespace FileSys { diff --git a/src/core/hle/service/filesystem/filesystem.cpp b/src/core/hle/service/filesystem/filesystem.cpp index da658cbe60..edc0f1ab1a 100644 --- a/src/core/hle/service/filesystem/filesystem.cpp +++ b/src/core/hle/service/filesystem/filesystem.cpp @@ -7,7 +7,10 @@ #include "common/assert.h" #include "common/file_util.h" #include "core/core.h" +#include "core/file_sys/bis_factory.h" #include "core/file_sys/errors.h" +#include "core/file_sys/registered_cache.h" +#include "core/file_sys/romfs_factory.h" #include "core/file_sys/savedata_factory.h" #include "core/file_sys/sdmc_factory.h" #include "core/file_sys/vfs.h" @@ -37,6 +40,8 @@ static FileSys::VirtualDir GetDirectoryRelativeWrapped(FileSys::VirtualDir base, VfsDirectoryServiceWrapper::VfsDirectoryServiceWrapper(FileSys::VirtualDir backing_) : backing(std::move(backing_)) {} +VfsDirectoryServiceWrapper::~VfsDirectoryServiceWrapper() = default; + std::string VfsDirectoryServiceWrapper::GetName() const { return backing->GetName(); } diff --git a/src/core/hle/service/filesystem/filesystem.h b/src/core/hle/service/filesystem/filesystem.h index 1d6f922ddc..3940d52700 100644 --- a/src/core/hle/service/filesystem/filesystem.h +++ b/src/core/hle/service/filesystem/filesystem.h @@ -6,14 +6,22 @@ #include #include "common/common_types.h" -#include "core/file_sys/bis_factory.h" #include "core/file_sys/directory.h" #include "core/file_sys/mode.h" -#include "core/file_sys/romfs_factory.h" -#include "core/file_sys/savedata_factory.h" -#include "core/file_sys/sdmc_factory.h" #include "core/hle/result.h" +namespace FileSys { +class BISFactory; +class RegisteredCache; +class RomFSFactory; +class SaveDataFactory; +class SDMCFactory; + +enum class SaveDataSpaceId : u8; + +struct SaveDataDescriptor; +} // namespace FileSys + namespace Service { namespace SM { @@ -44,6 +52,7 @@ void InstallInterfaces(SM::ServiceManager& service_manager, const FileSys::Virtu class VfsDirectoryServiceWrapper { public: explicit VfsDirectoryServiceWrapper(FileSys::VirtualDir backing); + ~VfsDirectoryServiceWrapper(); /** * Get a descriptive name for the archive (e.g. "RomFS", "SaveData", etc.) diff --git a/src/core/hle/service/filesystem/fsp_srv.cpp b/src/core/hle/service/filesystem/fsp_srv.cpp index 1470f90175..c38ba85a3a 100644 --- a/src/core/hle/service/filesystem/fsp_srv.cpp +++ b/src/core/hle/service/filesystem/fsp_srv.cpp @@ -16,6 +16,7 @@ #include "core/core.h" #include "core/file_sys/directory.h" #include "core/file_sys/errors.h" +#include "core/file_sys/savedata_factory.h" #include "core/hle/ipc_helpers.h" #include "core/hle/kernel/process.h" #include "core/hle/service/filesystem/filesystem.h" diff --git a/src/core/loader/deconstructed_rom_directory.cpp b/src/core/loader/deconstructed_rom_directory.cpp index d575a9beac..4c79d7902c 100644 --- a/src/core/loader/deconstructed_rom_directory.cpp +++ b/src/core/loader/deconstructed_rom_directory.cpp @@ -8,6 +8,7 @@ #include "common/logging/log.h" #include "core/file_sys/content_archive.h" #include "core/file_sys/control_metadata.h" +#include "core/file_sys/romfs_factory.h" #include "core/gdbstub/gdbstub.h" #include "core/hle/kernel/process.h" #include "core/hle/kernel/resource_limit.h" diff --git a/src/core/loader/nca.cpp b/src/core/loader/nca.cpp index 9d50c7d426..c036a8a1cd 100644 --- a/src/core/loader/nca.cpp +++ b/src/core/loader/nca.cpp @@ -7,6 +7,7 @@ #include "common/file_util.h" #include "common/logging/log.h" #include "core/file_sys/content_archive.h" +#include "core/file_sys/romfs_factory.h" #include "core/hle/kernel/process.h" #include "core/hle/service/filesystem/filesystem.h" #include "core/loader/deconstructed_rom_directory.h" diff --git a/src/yuzu/game_list.cpp b/src/yuzu/game_list.cpp index f867118d9c..da1ec76b62 100644 --- a/src/yuzu/game_list.cpp +++ b/src/yuzu/game_list.cpp @@ -16,6 +16,8 @@ #include "common/string_util.h" #include "core/file_sys/content_archive.h" #include "core/file_sys/control_metadata.h" +#include "core/file_sys/nca_metadata.h" +#include "core/file_sys/registered_cache.h" #include "core/file_sys/romfs.h" #include "core/file_sys/vfs_real.h" #include "core/loader/loader.h" diff --git a/src/yuzu/main.cpp b/src/yuzu/main.cpp index f7eee7769c..dc083d4ecf 100644 --- a/src/yuzu/main.cpp +++ b/src/yuzu/main.cpp @@ -20,16 +20,16 @@ #include "common/logging/backend.h" #include "common/logging/filter.h" #include "common/logging/log.h" -#include "common/logging/text_formatter.h" #include "common/microprofile.h" #include "common/scm_rev.h" #include "common/scope_exit.h" #include "common/string_util.h" #include "core/core.h" #include "core/crypto/key_manager.h" +#include "core/file_sys/bis_factory.h" #include "core/file_sys/card_image.h" +#include "core/file_sys/registered_cache.h" #include "core/file_sys/vfs_real.h" -#include "core/gdbstub/gdbstub.h" #include "core/loader/loader.h" #include "core/settings.h" #include "video_core/debug_utils/debug_utils.h"