diff options
| author | Robert Schumacher <roschuma@microsoft.com> | 2018-01-23 06:50:24 -0800 |
|---|---|---|
| committer | Robert Schumacher <roschuma@microsoft.com> | 2018-01-23 06:50:24 -0800 |
| commit | 3beeb94ec5ca73636d1a26bd9c2ec386b15df9b7 (patch) | |
| tree | 0f898d0b59691705faf3138690c4090c7b81b860 /toolsrc/include | |
| parent | 18f44c353d369b4da54cd7d352b9fba0fb911457 (diff) | |
| download | vcpkg-3beeb94ec5ca73636d1a26bd9c2ec386b15df9b7.tar.gz vcpkg-3beeb94ec5ca73636d1a26bd9c2ec386b15df9b7.zip | |
[vcpkg] Use InstalledPackageView instead of unsorted raw vectors
Diffstat (limited to 'toolsrc/include')
| -rw-r--r-- | toolsrc/include/vcpkg/dependencies.h | 8 | ||||
| -rw-r--r-- | toolsrc/include/vcpkg/remove.h | 4 | ||||
| -rw-r--r-- | toolsrc/include/vcpkg/statusparagraph.h | 15 | ||||
| -rw-r--r-- | toolsrc/include/vcpkg/statusparagraphs.h | 2 |
4 files changed, 22 insertions, 7 deletions
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<const StatusParagraph*>&& spghs, + InstalledPackageView&& spghs, const std::unordered_set<std::string>& features, const RequestType& request_type); @@ -52,7 +52,7 @@ namespace vcpkg::Dependencies PackageSpec spec; Optional<const SourceControlFile&> source_control_file; - Optional<std::vector<const StatusParagraph*>> status_paragraphs; + Optional<InstalledPackageView> installed_package; InstallPlanType plan_type; RequestType request_type; @@ -103,7 +103,7 @@ namespace vcpkg::Dependencies ExportPlanAction(); ExportPlanAction(const PackageSpec& spec, - std::vector<const StatusParagraph*>&& 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<PackageSpec> dependencies(const Triplet& triplet) const; private: - std::vector<const StatusParagraph*> m_spghs; + Optional<InstalledPackageView> 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<const StatusParagraph*>&& fs) + : core(c), features(std::move(fs)) + { + } + + std::vector<PackageSpec> dependencies() const; + + const StatusParagraph* core; + std::vector<const StatusParagraph*> 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<std::unique_ptr<StatusParagraph>*> find_all(const std::string& name, const Triplet& triplet); - std::vector<const std::unique_ptr<StatusParagraph>*> find_all_installed(const PackageSpec& spec) const; + Optional<InstalledPackageView> find_all_installed(const PackageSpec& spec) const; const_iterator find_installed(const PackageSpec& spec) const; bool is_installed(const PackageSpec& spec) const; |
