From 3beeb94ec5ca73636d1a26bd9c2ec386b15df9b7 Mon Sep 17 00:00:00 2001 From: Robert Schumacher Date: Tue, 23 Jan 2018 06:50:24 -0800 Subject: [vcpkg] Use InstalledPackageView instead of unsorted raw vectors --- toolsrc/include/vcpkg/dependencies.h | 8 ++++---- toolsrc/include/vcpkg/remove.h | 4 ++-- toolsrc/include/vcpkg/statusparagraph.h | 15 +++++++++++++++ toolsrc/include/vcpkg/statusparagraphs.h | 2 +- 4 files changed, 22 insertions(+), 7 deletions(-) (limited to 'toolsrc/include') diff --git a/toolsrc/include/vcpkg/dependencies.h b/toolsrc/include/vcpkg/dependencies.h index 14f51c216..c3f00018d 100644 --- a/toolsrc/include/vcpkg/dependencies.h +++ b/toolsrc/include/vcpkg/dependencies.h @@ -38,7 +38,7 @@ namespace vcpkg::Dependencies InstallPlanAction(); InstallPlanAction(const PackageSpec& spec, - std::vector&& spghs, + InstalledPackageView&& spghs, const std::unordered_set& features, const RequestType& request_type); @@ -52,7 +52,7 @@ namespace vcpkg::Dependencies PackageSpec spec; Optional source_control_file; - Optional> status_paragraphs; + Optional installed_package; InstallPlanType plan_type; RequestType request_type; @@ -103,7 +103,7 @@ namespace vcpkg::Dependencies ExportPlanAction(); ExportPlanAction(const PackageSpec& spec, - std::vector&& status_paragraphs, + InstalledPackageView&& installed_package, const RequestType& request_type); ExportPlanAction(const PackageSpec& spec, const RequestType& request_type); @@ -116,7 +116,7 @@ namespace vcpkg::Dependencies std::vector dependencies(const Triplet& triplet) const; private: - std::vector m_spghs; + Optional m_installed_package; }; struct PortFileProvider diff --git a/toolsrc/include/vcpkg/remove.h b/toolsrc/include/vcpkg/remove.h index 6d8a3ebe9..0610bd127 100644 --- a/toolsrc/include/vcpkg/remove.h +++ b/toolsrc/include/vcpkg/remove.h @@ -17,10 +17,10 @@ namespace vcpkg::Remove void perform_remove_plan_action(const VcpkgPaths& paths, const Dependencies::RemovePlanAction& action, const Purge purge, - StatusParagraphs& status_db); + const StatusParagraphs& status_db); extern const CommandStructure COMMAND_STRUCTURE; void perform_and_exit(const VcpkgCmdArguments& args, const VcpkgPaths& paths, const Triplet& default_triplet); - void remove_package(const VcpkgPaths& paths, const PackageSpec& spec, StatusParagraphs* status_db); + void remove_package(const VcpkgPaths& paths, const PackageSpec& spec, const StatusParagraphs& status_db); } diff --git a/toolsrc/include/vcpkg/statusparagraph.h b/toolsrc/include/vcpkg/statusparagraph.h index 051acf95f..0802de530 100644 --- a/toolsrc/include/vcpkg/statusparagraph.h +++ b/toolsrc/include/vcpkg/statusparagraph.h @@ -44,4 +44,19 @@ namespace vcpkg std::string to_string(InstallState f); std::string to_string(Want f); + + struct InstalledPackageView + { + InstalledPackageView() : core(nullptr) {} + + InstalledPackageView(const StatusParagraph* c, std::vector&& fs) + : core(c), features(std::move(fs)) + { + } + + std::vector dependencies() const; + + const StatusParagraph* core; + std::vector features; + }; } diff --git a/toolsrc/include/vcpkg/statusparagraphs.h b/toolsrc/include/vcpkg/statusparagraphs.h index 4e31b48d8..fd33f8094 100644 --- a/toolsrc/include/vcpkg/statusparagraphs.h +++ b/toolsrc/include/vcpkg/statusparagraphs.h @@ -21,7 +21,7 @@ namespace vcpkg std::vector*> find_all(const std::string& name, const Triplet& triplet); - std::vector*> find_all_installed(const PackageSpec& spec) const; + Optional find_all_installed(const PackageSpec& spec) const; const_iterator find_installed(const PackageSpec& spec) const; bool is_installed(const PackageSpec& spec) const; -- cgit v1.2.3