diff options
author | Steven Moreland <smoreland@google.com> | 2017-04-06 09:16:42 -0700 |
---|---|---|
committer | Steven Moreland <smoreland@google.com> | 2017-04-06 22:27:17 +0000 |
commit | f58feb768489f1664c605195dc1dc92f8527004f (patch) | |
tree | 4145a9205d666b091f1be08c8af73d0fa2647ec1 /ServiceManager.cpp | |
parent | 9074e37a8b48eeab2e7cb79be5c57ad819222d4f (diff) | |
download | hwservicemanager-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.cpp | 16 |
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; |