xref: /aosp_15_r20/external/cronet/base/android/callback_android.h (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
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