c++-impl: gen server stub boilerplate
-Lc++-impl now generates a default implementation for all
the interfaces in the specified package. The method
implementations are all left empty.
The default implementation also contains a special function,
HIDL_FETCH_IFOO(), which is used to retrieve an instance of
a particular interface in pass-through mode. For that to work,
the default implementation must live in a shared-library with
a well-known name, eg android.hardware.tests.foo@1.0.impl.so.
Sample invocation:
hidl-gen -o tmp/impl/ -Lc++-impl -randroid.hardware:hardware/interfaces
android.hardware.tests.foo@1.0
Bug: 31228745
Change-Id: I747aa47cb76931eed85179b8131d2efd3f887471
diff --git a/FQName.h b/FQName.h
index 8a0ad30..2fe7963 100644
--- a/FQName.h
+++ b/FQName.h
@@ -77,6 +77,18 @@
bool operator<(const FQName &other) const;
bool operator==(const FQName &other) const;
+ // the following comments all assume that the FQName
+ // is ::android::hardware::Foo::V1_0::IBar::Baz
+
+ // returns highest type in the hidl namespace, i.e.
+ // ::android::hardware::Foo::V1_0::IBar
+ const FQName getTopLevelType() const;
+
+ // returns an unambiguous fully qualified name which can be
+ // baked into a token, i.e.
+ // android_hardware_Foo_V1_0_IBar_Baz
+ std::string tokenName() const;
+
// Returns an absolute C++ namespace prefix, i.e.
// ::android::hardware::Foo::V1_0.
std::string cppNamespace() const;
@@ -86,14 +98,14 @@
std::string cppLocalName() const;
// Returns a fully qualified absolute C++ type name, i.e.
- // ::android::hardware::Foo::V1_0::bar::baz.
+ // ::android::hardware::Foo::V1_0::IBar::Baz.
std::string cppName() const;
// Returns the java package name, i.e. "android.hardware.Foo.V1_0".
std::string javaPackage() const;
// Returns the fully qualified java type name,
- // i.e. "android.hardware.Foo.V1_0.IBar"
+ // i.e. "android.hardware.Foo.V1_0.IBar.Baz"
std::string javaName() const;
bool endsWith(const FQName &other) const;