// Copyright 2024 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef JNI_ZERO_COMMON_APIS_H_ #define JNI_ZERO_COMMON_APIS_H_ #include #include "third_party/jni_zero/java_refs.h" #include "third_party/jni_zero/jni_export.h" namespace jni_zero { // Wraps Collection.toArray(). JNI_ZERO_COMPONENT_BUILD_EXPORT ScopedJavaLocalRef CollectionToArray(JNIEnv* env, const JavaRef& collection); // Wraps Arrays.asList(). JNI_ZERO_COMPONENT_BUILD_EXPORT ScopedJavaLocalRef ArrayToList( JNIEnv* env, const JavaRef& array); // Serializes a Map to an array of key/values. JNI_ZERO_COMPONENT_BUILD_EXPORT ScopedJavaLocalRef MapToArray( JNIEnv* env, const JavaRef& map); JNI_ZERO_COMPONENT_BUILD_EXPORT ScopedJavaLocalRef ArrayToMap( JNIEnv* env, const JavaRef& array); JNI_ZERO_COMPONENT_BUILD_EXPORT ScopedJavaLocalRef ListGet(JNIEnv* env, const JavaRef& list, jint idx); JNI_ZERO_COMPONENT_BUILD_EXPORT ScopedJavaLocalRef ListSet( JNIEnv* env, const JavaRef& list, jint idx, const JavaRef& value); JNI_ZERO_COMPONENT_BUILD_EXPORT void ListAdd(JNIEnv* env, const JavaRef& list, const JavaRef& value); JNI_ZERO_COMPONENT_BUILD_EXPORT ScopedJavaLocalRef MapGet(JNIEnv* env, const JavaRef& map, const JavaRef& key); JNI_ZERO_COMPONENT_BUILD_EXPORT ScopedJavaLocalRef SetMapAt( JNIEnv* env, const JavaRef& map, const JavaRef& key, const JavaRef& value); JNI_ZERO_COMPONENT_BUILD_EXPORT jint CollectionSize(JNIEnv* env, const JavaRef& collection); JNI_ZERO_COMPONENT_BUILD_EXPORT jint MapSize(JNIEnv* env, const JavaRef& map); } // namespace jni_zero #endif // JNI_ZERO_COMMON_APIS_H_