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