summaryrefslogtreecommitdiff
path: root/base/HidlSupport.cpp
diff options
context:
space:
mode:
authorYifan Hong <elsk@google.com>2017-03-15 01:44:16 +0000
committerandroid-build-merger <android-build-merger@google.com>2017-03-15 01:44:16 +0000
commitf2250c735b245b58a1513037bcb34bfbbdb1d81a (patch)
treee48dffbcd49998c5729f588fe6bcff255f43496e /base/HidlSupport.cpp
parent1428e659e3f1340d4ba83ea7cb2e6d7913138452 (diff)
parentadec8147f15a3a69a0bb6260c3fa422ac0c96ac9 (diff)
downloadlibhidl-f2250c735b245b58a1513037bcb34bfbbdb1d81a.tar.gz
Merge "getTransport checks both manifests." am: 1957f7a07f am: d05118a3c0
am: adec8147f1 Change-Id: I210c43e8778e807c91fcbdee446157af4cc40834
Diffstat (limited to 'base/HidlSupport.cpp')
-rw-r--r--base/HidlSupport.cpp34
1 files changed, 15 insertions, 19 deletions
diff --git a/base/HidlSupport.cpp b/base/HidlSupport.cpp
index bacb3d4..91c9717 100644
--- a/base/HidlSupport.cpp
+++ b/base/HidlSupport.cpp
@@ -30,26 +30,13 @@ namespace hardware {
vintf::Transport getTransportFromManifest(
const FQName &fqName, const std::string &instanceName,
- const std::string &manifestName,
const vintf::HalManifest *vm) {
if (vm == nullptr) {
- LOG(WARNING) << "getTransportFromManifest: No " << manifestName << " manifest defined, "
- << "using default transport for " << fqName.string();
return vintf::Transport::EMPTY;
}
- vintf::Transport tr = vm->getTransport(fqName.package(),
+ return vm->getTransport(fqName.package(),
vintf::Version{fqName.getPackageMajorVersion(), fqName.getPackageMinorVersion()},
fqName.name(), instanceName);
- if (tr == vintf::Transport::EMPTY) {
- LOG(WARNING) << "getTransportFromManifest: Cannot find entry "
- << fqName.string()
- << " in " << manifestName << " manifest, using default transport.";
- } else {
- LOG(DEBUG) << "getTransportFromManifest: " << fqName.string()
- << " declares transport method " << to_string(tr)
- << " in " << manifestName << " manifest";
- }
- return tr;
}
vintf::Transport getTransport(const std::string &interfaceName, const std::string &instanceName) {
@@ -68,13 +55,22 @@ vintf::Transport getTransport(const std::string &interfaceName, const std::strin
<< " does not specify an interface name. Using default transport.";
return vintf::Transport::EMPTY;
}
- // TODO(b/34772739): modify the list if other packages are added to system/manifest.xml
- if (fqName.inPackage("android.hidl")) {
- return getTransportFromManifest(fqName, instanceName, "framework",
- vintf::VintfObject::GetFrameworkHalManifest());
+
+ vintf::Transport tr = getTransportFromManifest(fqName, instanceName,
+ vintf::VintfObject::GetFrameworkHalManifest());
+ if (tr != vintf::Transport::EMPTY) {
+ return tr;
}
- return getTransportFromManifest(fqName, instanceName, "device",
+ tr = getTransportFromManifest(fqName, instanceName,
vintf::VintfObject::GetDeviceHalManifest());
+ if (tr != vintf::Transport::EMPTY) {
+ return tr;
+ }
+
+ LOG(WARNING) << "getTransportFromManifest: Cannot find entry "
+ << fqName.string()
+ << " in either framework or device manifest, using default transport.";
+ return vintf::Transport::EMPTY;
}
namespace details {