diff options
| author | 2016-11-02 22:17:24 +0000 | |
|---|---|---|
| committer | 2016-11-02 22:17:25 +0000 | |
| commit | 8d0c4ed74c53a1973627f94e1ffbcc1a962ae9d8 (patch) | |
| tree | 6933afa0bb1a21d5bc9e0e334b6c30b9d31cb220 | |
| parent | f5ad44b60a62b570ebe5a64bd2259bbcfa0dfeeb (diff) | |
| parent | a813686b9ddf5127f2552368fab9d29e2e402615 (diff) | |
Merge "Update for hidlized hwservicemanager."
| -rw-r--r-- | core/jni/android_os_HwBinder.cpp | 46 | ||||
| -rw-r--r-- | core/jni/android_os_HwRemoteBinder.cpp | 1 |
2 files changed, 29 insertions, 18 deletions
diff --git a/core/jni/android_os_HwBinder.cpp b/core/jni/android_os_HwBinder.cpp index 816d5df1c710..1a33d9111fdb 100644 --- a/core/jni/android_os_HwBinder.cpp +++ b/core/jni/android_os_HwBinder.cpp @@ -24,8 +24,9 @@ #include "android_os_HwRemoteBinder.h" #include <JNIHelp.h> +#include <android/hidl/manager/1.0/IServiceManager.h> #include <android_runtime/AndroidRuntime.h> -#include <hidl/IServiceManager.h> +#include <hidl/ServiceManagement.h> #include <hidl/Status.h> #include <hwbinder/ProcessState.h> #include <nativehelper/ScopedLocalRef.h> @@ -220,27 +221,31 @@ static void JHwBinder_native_registerService( return; // XXX exception already pending? } - const hardware::hidl_version kVersion = - hardware::make_hidl_version(versionMajor, versionMinor); + using android::hidl::manager::V1_0::IServiceManager; + + const IServiceManager::Version kVersion { + .major = static_cast<uint16_t>(versionMajor), + .minor = static_cast<uint16_t>(versionMinor), + }; sp<hardware::IBinder> binder = JHwBinder::GetNativeContext(env, thiz); - status_t err = hardware::defaultServiceManager()->addService( - String16( - reinterpret_cast<const char16_t *>(serviceName), - env->GetStringLength(serviceNameObj)), + bool ok = hardware::defaultServiceManager()->add( + String8(String16( + reinterpret_cast<const char16_t *>(serviceName), + env->GetStringLength(serviceNameObj))).string(), binder, kVersion); env->ReleaseStringCritical(serviceNameObj, serviceName); serviceName = NULL; - if (err == OK) { + if (ok) { LOG(INFO) << "Starting thread pool."; ::android::hardware::ProcessState::self()->startThreadPool(); } - signalExceptionForError(env, err); + signalExceptionForError(env, (ok ? OK : UNKNOWN_ERROR)); } static jobject JHwBinder_native_getService( @@ -268,8 +273,12 @@ static jobject JHwBinder_native_getService( return NULL; // XXX exception already pending? } - const hardware::hidl_version kVersion = - hardware::make_hidl_version(versionMajor, versionMinor); + using android::hidl::manager::V1_0::IServiceManager; + + const IServiceManager::Version kVersion { + .major = static_cast<uint16_t>(versionMajor), + .minor = static_cast<uint16_t>(versionMinor), + }; LOG(INFO) << "looking for service '" << String8(String16( @@ -277,12 +286,15 @@ static jobject JHwBinder_native_getService( env->GetStringLength(serviceNameObj))).string() << "'"; - sp<hardware::IBinder> service = - hardware::defaultServiceManager()->getService( - String16( - reinterpret_cast<const char16_t *>(serviceName), - env->GetStringLength(serviceNameObj)), - kVersion); + sp<hardware::IBinder> service; + hardware::defaultServiceManager()->get( + String8(String16( + reinterpret_cast<const char16_t *>(serviceName), + env->GetStringLength(serviceNameObj))).string(), + kVersion, + [&service](sp<hardware::IBinder> out) { + service = out; + }); env->ReleaseStringCritical(serviceNameObj, serviceName); serviceName = NULL; diff --git a/core/jni/android_os_HwRemoteBinder.cpp b/core/jni/android_os_HwRemoteBinder.cpp index 3023ba87d24b..1d5d6d59639a 100644 --- a/core/jni/android_os_HwRemoteBinder.cpp +++ b/core/jni/android_os_HwRemoteBinder.cpp @@ -24,7 +24,6 @@ #include <JNIHelp.h> #include <android_runtime/AndroidRuntime.h> -#include <hidl/IServiceManager.h> #include <hidl/Status.h> #include <nativehelper/ScopedLocalRef.h> |