123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192 |
- #ifndef BASE_ANDROID_JNI_ARRAY_H_
- #define BASE_ANDROID_JNI_ARRAY_H_
- #include <jni.h>
- #include <stddef.h>
- #include <stdint.h>
- #include <string>
- #include <vector>
- #include "base/android/scoped_java_ref.h"
- #include "base/containers/span.h"
- #include "base/strings/string16.h"
- namespace base {
- namespace android {
- BASE_EXPORT ScopedJavaLocalRef<jbyteArray> ToJavaByteArray(JNIEnv* env,
- const uint8_t* bytes,
- size_t len);
- BASE_EXPORT ScopedJavaLocalRef<jbyteArray> ToJavaByteArray(
- JNIEnv* env,
- base::span<const uint8_t> bytes);
- BASE_EXPORT ScopedJavaLocalRef<jbyteArray> ToJavaByteArray(
- JNIEnv* env,
- const std::string& str);
- BASE_EXPORT ScopedJavaLocalRef<jbooleanArray>
- ToJavaBooleanArray(JNIEnv* env, const bool* bools, size_t len);
- BASE_EXPORT ScopedJavaLocalRef<jintArray> ToJavaIntArray(
- JNIEnv* env, const int* ints, size_t len);
- BASE_EXPORT ScopedJavaLocalRef<jintArray> ToJavaIntArray(
- JNIEnv* env,
- base::span<const int> ints);
- BASE_EXPORT ScopedJavaLocalRef<jlongArray> ToJavaLongArray(JNIEnv* env,
- const int64_t* longs,
- size_t len);
- BASE_EXPORT ScopedJavaLocalRef<jlongArray> ToJavaLongArray(
- JNIEnv* env,
- base::span<const int64_t> longs);
- BASE_EXPORT ScopedJavaLocalRef<jfloatArray> ToJavaFloatArray(
- JNIEnv* env, const float* floats, size_t len);
- BASE_EXPORT ScopedJavaLocalRef<jfloatArray> ToJavaFloatArray(
- JNIEnv* env,
- base::span<const float> floats);
- BASE_EXPORT ScopedJavaLocalRef<jdoubleArray>
- ToJavaDoubleArray(JNIEnv* env, const double* doubles, size_t len);
- BASE_EXPORT ScopedJavaLocalRef<jdoubleArray> ToJavaDoubleArray(
- JNIEnv* env,
- base::span<const double> doubles);
- BASE_EXPORT ScopedJavaLocalRef<jobjectArray> ToJavaArrayOfByteArray(
- JNIEnv* env,
- base::span<const std::string> v);
- BASE_EXPORT ScopedJavaLocalRef<jobjectArray> ToJavaArrayOfByteArray(
- JNIEnv* env,
- base::span<std::vector<uint8_t>> v);
- BASE_EXPORT ScopedJavaLocalRef<jobjectArray> ToJavaArrayOfStrings(
- JNIEnv* env,
- base::span<const std::string> v);
- BASE_EXPORT ScopedJavaLocalRef<jobjectArray> ToJavaArrayOfStrings(
- JNIEnv* env,
- base::span<const string16> v);
- BASE_EXPORT ScopedJavaLocalRef<jobjectArray> ToJavaArrayOfStringArray(
- JNIEnv* env,
- base::span<const std::vector<string16>> v);
- BASE_EXPORT void AppendJavaStringArrayToStringVector(
- JNIEnv* env,
- const JavaRef<jobjectArray>& array,
- std::vector<string16>* out);
- BASE_EXPORT void AppendJavaStringArrayToStringVector(
- JNIEnv* env,
- const JavaRef<jobjectArray>& array,
- std::vector<std::string>* out);
- BASE_EXPORT void AppendJavaByteArrayToByteVector(
- JNIEnv* env,
- const JavaRef<jbyteArray>& byte_array,
- std::vector<uint8_t>* out);
- BASE_EXPORT void JavaByteArrayToByteVector(
- JNIEnv* env,
- const JavaRef<jbyteArray>& byte_array,
- std::vector<uint8_t>* out);
- BASE_EXPORT void JavaByteArrayToString(JNIEnv* env,
- const JavaRef<jbyteArray>& byte_array,
- std::string* out);
- BASE_EXPORT void JavaBooleanArrayToBoolVector(
- JNIEnv* env,
- const JavaRef<jbooleanArray>& boolean_array,
- std::vector<bool>* out);
- BASE_EXPORT void JavaIntArrayToIntVector(JNIEnv* env,
- const JavaRef<jintArray>& int_array,
- std::vector<int>* out);
- BASE_EXPORT void JavaLongArrayToInt64Vector(
- JNIEnv* env,
- const JavaRef<jlongArray>& long_array,
- std::vector<int64_t>* out);
- BASE_EXPORT void JavaLongArrayToLongVector(
- JNIEnv* env,
- const JavaRef<jlongArray>& long_array,
- std::vector<jlong>* out);
- BASE_EXPORT void JavaFloatArrayToFloatVector(
- JNIEnv* env,
- const JavaRef<jfloatArray>& float_array,
- std::vector<float>* out);
- BASE_EXPORT void JavaDoubleArrayToDoubleVector(
- JNIEnv* env,
- const JavaRef<jdoubleArray>& double_array,
- std::vector<double>* out);
- BASE_EXPORT void JavaArrayOfByteArrayToStringVector(
- JNIEnv* env,
- const JavaRef<jobjectArray>& array,
- std::vector<std::string>* out);
- BASE_EXPORT void JavaArrayOfByteArrayToBytesVector(
- JNIEnv* env,
- const JavaRef<jobjectArray>& array,
- std::vector<std::vector<uint8_t>>* out);
- BASE_EXPORT void Java2dStringArrayTo2dStringVector(
- JNIEnv* env,
- const JavaRef<jobjectArray>& array,
- std::vector<std::vector<string16>>* out);
- BASE_EXPORT void JavaArrayOfIntArrayToIntVector(
- JNIEnv* env,
- const JavaRef<jobjectArray>& array,
- std::vector<std::vector<int>>* out);
- }
- }
- #endif
|