regex-instance: HalInterface: add regex API and hide public fields
<regex-instance> is added under an <interface> tag,
which is represented by an HalInterface object. Add
API for looping over all <regex-instance>s / <instance>s
under it.
With this API, HalInterface can hide its public fields.
Bug: 73738616
Test: libvintf_test
Test: vintf_object_test
Test: vts_treble_vintf_test
Change-Id: Ia072dd7e946c28789797db8a46fd968bc7872dca
Merged-In: Ia072dd7e946c28789797db8a46fd968bc7872dca
diff --git a/CompatibilityMatrix.cpp b/CompatibilityMatrix.cpp
index 5b216f7..965923d 100644
--- a/CompatibilityMatrix.cpp
+++ b/CompatibilityMatrix.cpp
@@ -117,7 +117,8 @@
auto existingHals = getHals(name);
halToAdd.forEachInstance([&](const std::vector<VersionRange>& versionRanges,
- const std::string& interface, const std::string& instance) {
+ const std::string& interface, const std::string& instance,
+ bool /* isRegex */) {
for (auto* existingHal : existingHals) {
MatrixHal* splitInstance = this->splitInstance(existingHal, interface, instance);
if (splitInstance != nullptr) {
@@ -133,7 +134,7 @@
halToAdd.removeInstance(pair.first, pair.second);
}
- if (halToAdd.hasAnyInstance()) {
+ if (halToAdd.instancesCount() > 0) {
halToAdd.setOptional(true);
if (!add(std::move(halToAdd))) {
if (error) {