From a4392c24cf67184183cdfa8a5b9b21dbf2686732 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Mon, 14 Sep 2020 19:09:49 -0400 Subject: patch_manager: Make use of type aliases We can use these to avoid typing the same type redundantly. This way, if these ever change, only a single location needs to be modified. --- src/core/file_sys/patch_manager.h | 36 ++++++++++++++++++++---------------- 1 file changed, 20 insertions(+), 16 deletions(-) (limited to 'src/core/file_sys/patch_manager.h') diff --git a/src/core/file_sys/patch_manager.h b/src/core/file_sys/patch_manager.h index 92a7c6e04..1f28c6241 100644 --- a/src/core/file_sys/patch_manager.h +++ b/src/core/file_sys/patch_manager.h @@ -25,55 +25,59 @@ class NACP; // A centralized class to manage patches to games. class PatchManager { public: + using BuildID = std::array; + using Metadata = std::pair, VirtualFile>; + using PatchVersionNames = std::map>; + explicit PatchManager(u64 title_id); ~PatchManager(); - u64 GetTitleID() const; + [[nodiscard]] u64 GetTitleID() const; // Currently tracked ExeFS patches: // - Game Updates - VirtualDir PatchExeFS(VirtualDir exefs) const; + [[nodiscard]] VirtualDir PatchExeFS(VirtualDir exefs) const; // Currently tracked NSO patches: // - IPS // - IPSwitch - std::vector PatchNSO(const std::vector& nso, const std::string& name) const; + [[nodiscard]] std::vector PatchNSO(const std::vector& nso, + const std::string& name) const; // Checks to see if PatchNSO() will have any effect given the NSO's build ID. // Used to prevent expensive copies in NSO loader. - bool HasNSOPatch(const std::array& build_id) const; + [[nodiscard]] bool HasNSOPatch(const BuildID& build_id) const; // Creates a CheatList object with all - std::vector CreateCheatList( - const Core::System& system, const std::array& build_id) const; + [[nodiscard]] std::vector CreateCheatList( + const Core::System& system, const BuildID& build_id) const; // Currently tracked RomFS patches: // - Game Updates // - LayeredFS - VirtualFile PatchRomFS(VirtualFile base, u64 ivfc_offset, - ContentRecordType type = ContentRecordType::Program, - VirtualFile update_raw = nullptr) const; + [[nodiscard]] VirtualFile PatchRomFS(VirtualFile base, u64 ivfc_offset, + ContentRecordType type = ContentRecordType::Program, + VirtualFile update_raw = nullptr) const; // Returns a vector of pairs between patch names and patch versions. // i.e. Update 3.2.2 will return {"Update", "3.2.2"} - std::map> GetPatchVersionNames( - VirtualFile update_raw = nullptr) const; + [[nodiscard]] PatchVersionNames GetPatchVersionNames(VirtualFile update_raw = nullptr) const; // If the game update exists, returns the u32 version field in its Meta-type NCA. If that fails, // it will fallback to the Meta-type NCA of the base game. If that fails, the result will be // std::nullopt - std::optional GetGameVersion() const; + [[nodiscard]] std::optional GetGameVersion() const; // Given title_id of the program, attempts to get the control data of the update and parse // it, falling back to the base control data. - std::pair, VirtualFile> GetControlMetadata() const; + [[nodiscard]] Metadata GetControlMetadata() const; // Version of GetControlMetadata that takes an arbitrary NCA - std::pair, VirtualFile> ParseControlNCA(const NCA& nca) const; + [[nodiscard]] Metadata ParseControlNCA(const NCA& nca) const; private: - std::vector CollectPatches(const std::vector& patch_dirs, - const std::string& build_id) const; + [[nodiscard]] std::vector CollectPatches(const std::vector& patch_dirs, + const std::string& build_id) const; u64 title_id; }; -- cgit v1.2.3