diff options
author | Yifan Hong <elsk@google.com> | 2017-03-15 01:44:16 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2017-03-15 01:44:16 +0000 |
commit | f2250c735b245b58a1513037bcb34bfbbdb1d81a (patch) | |
tree | e48dffbcd49998c5729f588fe6bcff255f43496e /base/HidlSupport.cpp | |
parent | 1428e659e3f1340d4ba83ea7cb2e6d7913138452 (diff) | |
parent | adec8147f15a3a69a0bb6260c3fa422ac0c96ac9 (diff) | |
download | libhidl-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.cpp | 34 |
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 { |