summaryrefslogtreecommitdiff
path: root/ServiceManager.cpp
diff options
context:
space:
mode:
authorSteven Moreland <smoreland@google.com>2017-04-06 09:16:42 -0700
committerSteven Moreland <smoreland@google.com>2017-04-06 22:27:17 +0000
commitf58feb768489f1664c605195dc1dc92f8527004f (patch)
tree4145a9205d666b091f1be08c8af73d0fa2647ec1 /ServiceManager.cpp
parent9074e37a8b48eeab2e7cb79be5c57ad819222d4f (diff)
downloadhwservicemanager-f58feb768489f1664c605195dc1dc92f8527004f.tar.gz
Implement getTransport.
hwservicemanager now reads the vintf directly so that libhidl* doesn't have to depend on libvintf. Test: extensive, see change Ia5d1eb41b057ab5d6800f6c3fd22658adecc4be7 Bug: 36377072 Merged-In: I82593bde03fc445ce37145b01a8ee1a088d499a6 Change-Id: I82593bde03fc445ce37145b01a8ee1a088d499a6 (cherry picked from commit 37aed80ba481abefb24e4ba6a56fccf574ec6f9d)
Diffstat (limited to 'ServiceManager.cpp')
-rw-r--r--ServiceManager.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/ServiceManager.cpp b/ServiceManager.cpp
index bac4588..7c4d90e 100644
--- a/ServiceManager.cpp
+++ b/ServiceManager.cpp
@@ -1,6 +1,7 @@
#define LOG_TAG "hwservicemanager"
#include "ServiceManager.h"
+#include "Vintf.h"
#include <android-base/logging.h>
#include <hwbinder/IPCThreadState.h>
@@ -213,6 +214,21 @@ Return<bool> ServiceManager::add(const hidl_string& name, const sp<IBase>& servi
return isValidService;
}
+Return<ServiceManager::Transport> ServiceManager::getTransport(const hidl_string& fqName,
+ const hidl_string& name) {
+ using ::android::hardware::getTransport;
+
+ switch (getTransport(fqName, name)) {
+ case vintf::Transport::HWBINDER:
+ return Transport::HWBINDER;
+ case vintf::Transport::PASSTHROUGH:
+ return Transport::PASSTHROUGH;
+ case vintf::Transport::EMPTY:
+ default:
+ return Transport::EMPTY;
+ }
+}
+
Return<void> ServiceManager::list(list_cb _hidl_cb) {
hidl_vec<hidl_string> list;