Prevent AST from modifying Coordinator.
With additional methods in Coordinator which are non-const, we
should prevent this from happening.
Test: manual
Change-Id: I067840164f847a59239e3c2f0e19a62a4575d704
diff --git a/Coordinator.h b/Coordinator.h
index 9ff1ede..efa1cad 100644
--- a/Coordinator.h
+++ b/Coordinator.h
@@ -50,7 +50,7 @@
// into the set.
// If !enforce, enforceRestrictionsOnPackage won't be run.
AST *parse(const FQName &fqName, std::set<AST *> *parsedASTs = nullptr,
- bool enforce = true);
+ bool enforce = true) const;
// Given package-root paths of ["hardware/interfaces",
// "vendor/<something>/interfaces"], package roots of
@@ -97,7 +97,7 @@
// - minor version upgrades
// "packages" contains names like "android.hardware.nfc@1.1".
// - hashing restrictions
- status_t enforceRestrictionsOnPackage(const FQName &fqName);
+ status_t enforceRestrictionsOnPackage(const FQName &fqName) const;
static bool MakeParentHierarchy(const std::string &path);
@@ -114,17 +114,17 @@
std::string mRootPath;
// cache to parse().
- std::map<FQName, AST *> mCache;
+ mutable std::map<FQName, AST *> mCache;
// cache to enforceRestrictionsOnPackage().
- std::set<FQName> mPackagesEnforced;
+ mutable std::set<FQName> mPackagesEnforced;
std::vector<std::string>::const_iterator findPackageRoot(
const FQName &fqName) const;
// Rules of enforceRestrictionsOnPackage are listed below.
- status_t enforceMinorVersionUprevs(const FQName &fqName);
- status_t enforceHashes(const FQName &fqName);
+ status_t enforceMinorVersionUprevs(const FQName &fqName) const;
+ status_t enforceHashes(const FQName &fqName) const;
DISALLOW_COPY_AND_ASSIGN(Coordinator);
};