aboutsummaryrefslogtreecommitdiff
path: root/toolsrc/include
diff options
context:
space:
mode:
authorRobert Schumacher <roschuma@microsoft.com>2018-01-23 06:50:24 -0800
committerRobert Schumacher <roschuma@microsoft.com>2018-01-23 06:50:24 -0800
commit3beeb94ec5ca73636d1a26bd9c2ec386b15df9b7 (patch)
tree0f898d0b59691705faf3138690c4090c7b81b860 /toolsrc/include
parent18f44c353d369b4da54cd7d352b9fba0fb911457 (diff)
downloadvcpkg-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.h8
-rw-r--r--toolsrc/include/vcpkg/remove.h4
-rw-r--r--toolsrc/include/vcpkg/statusparagraph.h15
-rw-r--r--toolsrc/include/vcpkg/statusparagraphs.h2
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;