aboutsummaryrefslogtreecommitdiffstats
path: root/Reference.h
diff options
context:
space:
mode:
authorTimur Iskhakov <iskhakovt@google.com>2017-08-13 22:57:55 -0700
committerTimur Iskhakov <iskhakovt@google.com>2017-08-15 10:57:19 -0700
commit774ae7feaf990517ca48f2114b0dfb90273f36f4 (patch)
tree21d2e60b73b15e852a9f63d87cd2b1924463d86f /Reference.h
parente9ccfa2e9c177ead2b6ccb36dd20de294666abcd (diff)
downloadandroid_system_tools_hidl-774ae7feaf990517ca48f2114b0dfb90273f36f4.tar.gz
android_system_tools_hidl-774ae7feaf990517ca48f2114b0dfb90273f36f4.tar.bz2
android_system_tools_hidl-774ae7feaf990517ca48f2114b0dfb90273f36f4.zip
Make NamedReference be child class for Reference
NamedReference is actually a reference with added name, if we keep it to be a tuple, we will need to copy most of Reference methods to NamedReference for lookup (ex.: getFqName, set) Test: build hidl-gen, hidl_test Change-Id: I1e9e22f6ef3698e709056a09eec7cb75e3175f2f
Diffstat (limited to 'Reference.h')
-rw-r--r--Reference.h13
1 files changed, 6 insertions, 7 deletions
diff --git a/Reference.h b/Reference.h
index 1728a91..8a73609 100644
--- a/Reference.h
+++ b/Reference.h
@@ -31,6 +31,7 @@ namespace android {
template <class T>
struct Reference {
Reference() = default;
+ virtual ~Reference() {}
Reference(const FQName& fqName, const Location& location)
: mResolved(nullptr), mFqName(fqName), mLocation(location) {}
@@ -97,19 +98,17 @@ struct Reference {
};
template <class T>
-struct NamedReference {
+struct NamedReference : public Reference<T> {
NamedReference(const std::string& name, const Reference<T>& reference)
- : mName(name), mReference(reference) {}
+ : Reference<T>(reference), mName(name) {}
const std::string& name() const { return mName; }
- const T& type() const { return *mReference.get(); }
- const T* operator->() const { return mReference.get(); }
+
+ // TODO(b/64715470) Legacy
+ const T& type() const { return *Reference<T>::get(); }
private:
const std::string mName;
- const Reference<T> mReference;
-
- DISALLOW_COPY_AND_ASSIGN(NamedReference<T>);
};
} // namespace android