Stop generating IHw classes.
The main rationale of the IHw class was to be able
to cast binder objects to/from interfaces safely.
That functionality is now taking over by interfaceChain()
in IBase, together with the toBinder()/fromBinder() functions
in libhidl.
The remaining binder objects related to IFoo are now just
BpFoo and BnFoo, and both still inherit from IInterface.
Note that the IHw *header* itself remains, as it contains the
declarations for reading/writing datatypes related to the
interface into a Parcel.
Test: mma, hidl_test, hidl_test_java
Bug: 33173166
Change-Id: I6bbe1228830a413058d0e9dbb6345ed1c01aa97d
diff --git a/Interface.cpp b/Interface.cpp
index 36179e7..4117177 100644
--- a/Interface.cpp
+++ b/Interface.cpp
@@ -219,10 +219,6 @@
return fqName().getInterfaceBaseName();
}
-FQName Interface::getHwName() const {
- return FQName(fqName().package(), fqName().version(), "IHw" + getBaseName());
-}
-
FQName Interface::getProxyName() const {
return FQName(fqName().package(), fqName().version(), "Bp" + getBaseName());
}
@@ -295,10 +291,13 @@
out << name
<< " = "
- << fqName().cppNamespace()
- << "::IHw"
- << getBaseName()
- << "::asInterface("
+ << "::android::hardware::fromBinder<"
+ << fqName().cppName()
+ << ","
+ << getProxyName().cppName()
+ << ","
+ << getStubName().cppName()
+ << ">("
<< binderName
<< ");\n";
@@ -316,13 +315,9 @@
out << "::android::sp<::android::hardware::IBinder> _hidl_binder = "
<< "::android::hardware::toBinder<\n";
out.indentBlock(2, [&] {
- out << fqName().cppNamespace()
- << "::I"
- << getBaseName()
+ out << fqName().cppName()
<< ", "
- << fqName().cppNamespace()
- << "::IHw"
- << getBaseName()
+ << getProxyName().cppName()
<< ">("
<< name
<< ");\n";