1*6777b538SAndroid Build Coastguard Worker // Copyright 2016 The Chromium Authors 2*6777b538SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be 3*6777b538SAndroid Build Coastguard Worker // found in the LICENSE file. 4*6777b538SAndroid Build Coastguard Worker 5*6777b538SAndroid Build Coastguard Worker #ifndef BASE_ANDROID_CALLBACK_ANDROID_H_ 6*6777b538SAndroid Build Coastguard Worker #define BASE_ANDROID_CALLBACK_ANDROID_H_ 7*6777b538SAndroid Build Coastguard Worker 8*6777b538SAndroid Build Coastguard Worker #include <jni.h> 9*6777b538SAndroid Build Coastguard Worker #include <string> 10*6777b538SAndroid Build Coastguard Worker #include <vector> 11*6777b538SAndroid Build Coastguard Worker 12*6777b538SAndroid Build Coastguard Worker #include "base/android/scoped_java_ref.h" 13*6777b538SAndroid Build Coastguard Worker #include "base/base_export.h" 14*6777b538SAndroid Build Coastguard Worker #include "base/time/time.h" 15*6777b538SAndroid Build Coastguard Worker #include "base/types/optional_ref.h" 16*6777b538SAndroid Build Coastguard Worker 17*6777b538SAndroid Build Coastguard Worker // Provides helper utility methods that run the given callback with the 18*6777b538SAndroid Build Coastguard Worker // specified argument. 19*6777b538SAndroid Build Coastguard Worker namespace base { 20*6777b538SAndroid Build Coastguard Worker namespace android { 21*6777b538SAndroid Build Coastguard Worker 22*6777b538SAndroid Build Coastguard Worker void BASE_EXPORT RunObjectCallbackAndroid(const JavaRef<jobject>& callback, 23*6777b538SAndroid Build Coastguard Worker const JavaRef<jobject>& arg); 24*6777b538SAndroid Build Coastguard Worker 25*6777b538SAndroid Build Coastguard Worker void BASE_EXPORT RunBooleanCallbackAndroid(const JavaRef<jobject>& callback, 26*6777b538SAndroid Build Coastguard Worker bool arg); 27*6777b538SAndroid Build Coastguard Worker 28*6777b538SAndroid Build Coastguard Worker void BASE_EXPORT RunIntCallbackAndroid(const JavaRef<jobject>& callback, 29*6777b538SAndroid Build Coastguard Worker int32_t arg); 30*6777b538SAndroid Build Coastguard Worker 31*6777b538SAndroid Build Coastguard Worker void BASE_EXPORT RunLongCallbackAndroid(const JavaRef<jobject>& callback, 32*6777b538SAndroid Build Coastguard Worker int64_t arg); 33*6777b538SAndroid Build Coastguard Worker 34*6777b538SAndroid Build Coastguard Worker void BASE_EXPORT RunTimeCallbackAndroid(const JavaRef<jobject>& callback, 35*6777b538SAndroid Build Coastguard Worker base::Time time); 36*6777b538SAndroid Build Coastguard Worker 37*6777b538SAndroid Build Coastguard Worker void BASE_EXPORT RunStringCallbackAndroid(const JavaRef<jobject>& callback, 38*6777b538SAndroid Build Coastguard Worker const std::string& arg); 39*6777b538SAndroid Build Coastguard Worker 40*6777b538SAndroid Build Coastguard Worker void BASE_EXPORT RunOptionalStringCallbackAndroid( 41*6777b538SAndroid Build Coastguard Worker const JavaRef<jobject>& callback, 42*6777b538SAndroid Build Coastguard Worker base::optional_ref<const std::string> optional_string_arg); 43*6777b538SAndroid Build Coastguard Worker 44*6777b538SAndroid Build Coastguard Worker void BASE_EXPORT RunByteArrayCallbackAndroid(const JavaRef<jobject>& callback, 45*6777b538SAndroid Build Coastguard Worker const std::vector<uint8_t>& arg); 46*6777b538SAndroid Build Coastguard Worker 47*6777b538SAndroid Build Coastguard Worker void BASE_EXPORT RunRunnableAndroid(const JavaRef<jobject>& runnable); 48*6777b538SAndroid Build Coastguard Worker 49*6777b538SAndroid Build Coastguard Worker } // namespace android 50*6777b538SAndroid Build Coastguard Worker } // namespace base 51*6777b538SAndroid Build Coastguard Worker 52*6777b538SAndroid Build Coastguard Worker #endif // BASE_ANDROID_CALLBACK_ANDROID_H_ 53