blob: 45ce03e027bf41a6d7250498d9e98377636b084f [file]
// Autogenerated file. Do not edit.
// Generated from an annotated version of jni.h provided in Android NDK.
// (NDK Version 23.1.7779620)
// The license for original file is provided below:
/*
* Copyright (C) 2006 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/*
* JNI specification, as defined by Sun:
* http://java.sun.com/javase/6/docs/technotes/guides/jni/spec/jniTOC.html
*
* Everything here is expected to be VM-neutral.
*/
// ignore_for_file: always_specify_types
// ignore_for_file: camel_case_types
// ignore_for_file: non_constant_identifier_names
// ignore_for_file: constant_identifier_names
// ignore_for_file: unused_field
// ignore_for_file: unused_element
// coverage:ignore-file
// AUTO GENERATED FILE, DO NOT EDIT.
//
// Generated by `package:ffigen`.
import 'dart:ffi' as ffi;
/// Bindings for libdartjni.so which is part of jni plugin.
///
/// It also transitively includes type definitions such as JNIEnv from third_party/jni.h;
///
/// However, functions prefixed JNI_ are not usable because they are in a different shared library.
///
/// Regenerate bindings with `flutter pub run ffigen.dart --config ffigen.yaml`.
///
class JniBindings {
/// Holds the symbol lookup function.
final ffi.Pointer<T> Function<T extends ffi.NativeType>(String symbolName)
_lookup;
/// The symbols are looked up in [dynamicLibrary].
JniBindings(ffi.DynamicLibrary dynamicLibrary)
: _lookup = dynamicLibrary.lookup;
/// The symbols are looked up with [lookup].
JniBindings.fromLookup(
ffi.Pointer<T> Function<T extends ffi.NativeType>(String symbolName)
lookup)
: _lookup = lookup;
ffi.Pointer<JniAccessors> GetAccessors() {
return _GetAccessors();
}
late final _GetAccessorsPtr =
_lookup<ffi.NativeFunction<ffi.Pointer<JniAccessors> Function()>>(
'GetAccessors');
late final _GetAccessors =
_GetAccessorsPtr.asFunction<ffi.Pointer<JniAccessors> Function()>();
ffi.Pointer<JavaVM> GetJavaVM() {
return _GetJavaVM();
}
late final _GetJavaVMPtr =
_lookup<ffi.NativeFunction<ffi.Pointer<JavaVM> Function()>>('GetJavaVM');
late final _GetJavaVM =
_GetJavaVMPtr.asFunction<ffi.Pointer<JavaVM> Function()>();
ffi.Pointer<JniEnv> GetJniEnv() {
return _GetJniEnv();
}
late final _GetJniEnvPtr =
_lookup<ffi.NativeFunction<ffi.Pointer<JniEnv> Function()>>('GetJniEnv');
late final _GetJniEnv =
_GetJniEnvPtr.asFunction<ffi.Pointer<JniEnv> Function()>();
ffi.Pointer<JniEnv> SpawnJvm(
ffi.Pointer<JavaVMInitArgs> args,
) {
return _SpawnJvm(
args,
);
}
late final _SpawnJvmPtr = _lookup<
ffi.NativeFunction<
ffi.Pointer<JniEnv> Function(
ffi.Pointer<JavaVMInitArgs>)>>('SpawnJvm');
late final _SpawnJvm = _SpawnJvmPtr.asFunction<
ffi.Pointer<JniEnv> Function(ffi.Pointer<JavaVMInitArgs>)>();
JClassPtr LoadClass(
ffi.Pointer<ffi.Char> name,
) {
return _LoadClass(
name,
);
}
late final _LoadClassPtr =
_lookup<ffi.NativeFunction<JClassPtr Function(ffi.Pointer<ffi.Char>)>>(
'LoadClass');
late final _LoadClass =
_LoadClassPtr.asFunction<JClassPtr Function(ffi.Pointer<ffi.Char>)>();
JObjectPtr GetClassLoader() {
return _GetClassLoader();
}
late final _GetClassLoaderPtr =
_lookup<ffi.NativeFunction<JObjectPtr Function()>>('GetClassLoader');
late final _GetClassLoader =
_GetClassLoaderPtr.asFunction<JObjectPtr Function()>();
JObjectPtr GetApplicationContext() {
return _GetApplicationContext();
}
late final _GetApplicationContextPtr =
_lookup<ffi.NativeFunction<JObjectPtr Function()>>(
'GetApplicationContext');
late final _GetApplicationContext =
_GetApplicationContextPtr.asFunction<JObjectPtr Function()>();
JObjectPtr GetCurrentActivity() {
return _GetCurrentActivity();
}
late final _GetCurrentActivityPtr =
_lookup<ffi.NativeFunction<JObjectPtr Function()>>('GetCurrentActivity');
late final _GetCurrentActivity =
_GetCurrentActivityPtr.asFunction<JObjectPtr Function()>();
ffi.Pointer<GlobalJniEnv> GetGlobalEnv() {
return _GetGlobalEnv();
}
late final _GetGlobalEnvPtr =
_lookup<ffi.NativeFunction<ffi.Pointer<GlobalJniEnv> Function()>>(
'GetGlobalEnv');
late final _GetGlobalEnv =
_GetGlobalEnvPtr.asFunction<ffi.Pointer<GlobalJniEnv> Function()>();
}
class jfieldID_ extends ffi.Opaque {}
class jmethodID_ extends ffi.Opaque {}
class JValue extends ffi.Union {
@JBooleanMarker()
external int z;
@JByteMarker()
external int b;
@JCharMarker()
external int c;
@JShortMarker()
external int s;
@JIntMarker()
external int i;
@JLongMarker()
external int j;
@JFloatMarker()
external double f;
@JDoubleMarker()
external double d;
external JObjectPtr l;
}
/// Primitive types that match up with Java equivalents.
typedef JBooleanMarker = ffi.Uint8;
typedef JByteMarker = ffi.Int8;
typedef JCharMarker = ffi.Uint16;
typedef JShortMarker = ffi.Int16;
typedef JIntMarker = ffi.Int32;
typedef JLongMarker = ffi.Int64;
typedef JFloatMarker = ffi.Float;
typedef JDoubleMarker = ffi.Double;
/// Reference types, in C.
typedef JObjectPtr = ffi.Pointer<ffi.Void>;
abstract class jobjectRefType {
static const int JNIInvalidRefType = 0;
static const int JNILocalRefType = 1;
static const int JNIGlobalRefType = 2;
static const int JNIWeakGlobalRefType = 3;
}
class JNINativeMethod extends ffi.Struct {
external ffi.Pointer<ffi.Char> name;
external ffi.Pointer<ffi.Char> signature;
external ffi.Pointer<ffi.Void> fnPtr;
}
/// C++ version.
class _JavaVM extends ffi.Struct {
external ffi.Pointer<JNIInvokeInterface> functions;
}
/// JNI invocation interface.
class JNIInvokeInterface extends ffi.Struct {
external ffi.Pointer<ffi.Void> reserved0;
external ffi.Pointer<ffi.Void> reserved1;
external ffi.Pointer<ffi.Void> reserved2;
external ffi
.Pointer<ffi.NativeFunction<JIntMarker Function(ffi.Pointer<JavaVM>)>>
DestroyJavaVM;
external ffi.Pointer<
ffi.NativeFunction<
JIntMarker Function(
ffi.Pointer<JavaVM>,
ffi.Pointer<ffi.Pointer<JniEnv>>,
ffi.Pointer<ffi.Void>)>> AttachCurrentThread;
external ffi
.Pointer<ffi.NativeFunction<JIntMarker Function(ffi.Pointer<JavaVM>)>>
DetachCurrentThread;
external ffi.Pointer<
ffi.NativeFunction<
JIntMarker Function(ffi.Pointer<JavaVM>,
ffi.Pointer<ffi.Pointer<ffi.Void>>, JIntMarker)>> GetEnv;
external ffi.Pointer<
ffi.NativeFunction<
JIntMarker Function(
ffi.Pointer<JavaVM>,
ffi.Pointer<ffi.Pointer<JniEnv>>,
ffi.Pointer<ffi.Void>)>> AttachCurrentThreadAsDaemon;
}
extension JNIInvokeInterfaceExtension on ffi.Pointer<JavaVM> {
int DestroyJavaVM() {
return value.ref.DestroyJavaVM
.asFunction<int Function(ffi.Pointer<JavaVM>)>()(this);
}
int AttachCurrentThread(
ffi.Pointer<ffi.Pointer<JniEnv>> p_env, ffi.Pointer<ffi.Void> thr_args) {
return value.ref.AttachCurrentThread.asFunction<
int Function(ffi.Pointer<JavaVM>, ffi.Pointer<ffi.Pointer<JniEnv>>,
ffi.Pointer<ffi.Void>)>()(this, p_env, thr_args);
}
int DetachCurrentThread() {
return value.ref.DetachCurrentThread
.asFunction<int Function(ffi.Pointer<JavaVM>)>()(this);
}
int GetEnv(ffi.Pointer<ffi.Pointer<ffi.Void>> p_env, int version) {
return value.ref.GetEnv.asFunction<
int Function(ffi.Pointer<JavaVM>, ffi.Pointer<ffi.Pointer<ffi.Void>>,
int)>()(this, p_env, version);
}
int AttachCurrentThreadAsDaemon(
ffi.Pointer<ffi.Pointer<JniEnv>> p_env, ffi.Pointer<ffi.Void> thr_args) {
return value.ref.AttachCurrentThreadAsDaemon.asFunction<
int Function(ffi.Pointer<JavaVM>, ffi.Pointer<ffi.Pointer<JniEnv>>,
ffi.Pointer<ffi.Void>)>()(this, p_env, thr_args);
}
}
typedef JavaVM = ffi.Pointer<JNIInvokeInterface>;
typedef JniEnv = ffi.Pointer<JNINativeInterface>;
/// Table of interface function pointers.
class JNINativeInterface extends ffi.Struct {
external ffi.Pointer<ffi.Void> reserved0;
external ffi.Pointer<ffi.Void> reserved1;
external ffi.Pointer<ffi.Void> reserved2;
external ffi.Pointer<ffi.Void> reserved3;
external ffi.Pointer<
ffi.NativeFunction<JIntMarker Function(ffi.Pointer<JniEnv1>)>> GetVersion;
external ffi.Pointer<
ffi.NativeFunction<
JClassPtr Function(ffi.Pointer<JniEnv1>, ffi.Pointer<ffi.Char>,
JObjectPtr, ffi.Pointer<JByteMarker>, JSizeMarker)>> DefineClass;
external ffi.Pointer<
ffi.NativeFunction<
JClassPtr Function(ffi.Pointer<JniEnv1>, ffi.Pointer<ffi.Char>)>>
FindClass;
external ffi.Pointer<
ffi.NativeFunction<
JMethodIDPtr Function(ffi.Pointer<JniEnv1>, JObjectPtr)>>
FromReflectedMethod;
external ffi.Pointer<
ffi.NativeFunction<
JFieldIDPtr Function(ffi.Pointer<JniEnv1>, JObjectPtr)>>
FromReflectedField;
/// spec doesn't show jboolean parameter
external ffi.Pointer<
ffi.NativeFunction<
JObjectPtr Function(ffi.Pointer<JniEnv1>, JClassPtr, JMethodIDPtr,
JBooleanMarker)>> ToReflectedMethod;
external ffi.Pointer<
ffi.NativeFunction<
JClassPtr Function(ffi.Pointer<JniEnv1>, JClassPtr)>> GetSuperclass;
external ffi.Pointer<
ffi.NativeFunction<
JBooleanMarker Function(
ffi.Pointer<JniEnv1>, JClassPtr, JClassPtr)>> IsAssignableFrom;
/// spec doesn't show jboolean parameter
external ffi.Pointer<
ffi.NativeFunction<
JObjectPtr Function(ffi.Pointer<JniEnv1>, JClassPtr, JFieldIDPtr,
JBooleanMarker)>> ToReflectedField;
external ffi.Pointer<
ffi.NativeFunction<
JIntMarker Function(ffi.Pointer<JniEnv1>, JThrowablePtr)>> Throw;
external ffi.Pointer<
ffi.NativeFunction<
JIntMarker Function(
ffi.Pointer<JniEnv1>, JClassPtr, ffi.Pointer<ffi.Char>)>>
ThrowNew;
external ffi.Pointer<
ffi.NativeFunction<JThrowablePtr Function(ffi.Pointer<JniEnv1>)>>
ExceptionOccurred;
external ffi
.Pointer<ffi.NativeFunction<ffi.Void Function(ffi.Pointer<JniEnv1>)>>
ExceptionDescribe;
external ffi
.Pointer<ffi.NativeFunction<ffi.Void Function(ffi.Pointer<JniEnv1>)>>
ExceptionClear;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(ffi.Pointer<JniEnv1>, ffi.Pointer<ffi.Char>)>>
FatalError;
external ffi.Pointer<
ffi.NativeFunction<
JIntMarker Function(ffi.Pointer<JniEnv1>, JIntMarker)>>
PushLocalFrame;
external ffi.Pointer<
ffi.NativeFunction<
JObjectPtr Function(ffi.Pointer<JniEnv1>, JObjectPtr)>> PopLocalFrame;
external ffi.Pointer<
ffi.NativeFunction<
JObjectPtr Function(ffi.Pointer<JniEnv1>, JObjectPtr)>> NewGlobalRef;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(ffi.Pointer<JniEnv1>, JObjectPtr)>> DeleteGlobalRef;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(ffi.Pointer<JniEnv1>, JObjectPtr)>> DeleteLocalRef;
external ffi.Pointer<
ffi.NativeFunction<
JBooleanMarker Function(
ffi.Pointer<JniEnv1>, JObjectPtr, JObjectPtr)>> IsSameObject;
external ffi.Pointer<
ffi.NativeFunction<
JObjectPtr Function(ffi.Pointer<JniEnv1>, JObjectPtr)>> NewLocalRef;
external ffi.Pointer<
ffi.NativeFunction<
JIntMarker Function(ffi.Pointer<JniEnv1>, JIntMarker)>>
EnsureLocalCapacity;
external ffi.Pointer<
ffi.NativeFunction<
JObjectPtr Function(ffi.Pointer<JniEnv1>, JClassPtr)>> AllocObject;
external ffi.Pointer<
ffi.NativeFunction<
JObjectPtr Function(
ffi.Pointer<JniEnv1>, JClassPtr, JMethodIDPtr)>> NewObject;
external ffi.Pointer<ffi.Void> _NewObjectV;
external ffi.Pointer<
ffi.NativeFunction<
JObjectPtr Function(ffi.Pointer<JniEnv1>, JClassPtr, JMethodIDPtr,
ffi.Pointer<JValue>)>> NewObjectA;
external ffi.Pointer<
ffi.NativeFunction<
JClassPtr Function(ffi.Pointer<JniEnv1>, JObjectPtr)>> GetObjectClass;
external ffi.Pointer<
ffi.NativeFunction<
JBooleanMarker Function(
ffi.Pointer<JniEnv1>, JObjectPtr, JClassPtr)>> IsInstanceOf;
external ffi.Pointer<
ffi.NativeFunction<
JMethodIDPtr Function(ffi.Pointer<JniEnv1>, JClassPtr,
ffi.Pointer<ffi.Char>, ffi.Pointer<ffi.Char>)>> GetMethodID;
external ffi.Pointer<
ffi.NativeFunction<
JObjectPtr Function(
ffi.Pointer<JniEnv1>, JObjectPtr, JMethodIDPtr)>>
CallObjectMethod;
external ffi.Pointer<ffi.Void> _CallObjectMethodV;
external ffi.Pointer<
ffi.NativeFunction<
JObjectPtr Function(ffi.Pointer<JniEnv1>, JObjectPtr, JMethodIDPtr,
ffi.Pointer<JValue>)>> CallObjectMethodA;
external ffi.Pointer<
ffi.NativeFunction<
JBooleanMarker Function(
ffi.Pointer<JniEnv1>, JObjectPtr, JMethodIDPtr)>>
CallBooleanMethod;
external ffi.Pointer<ffi.Void> _CallBooleanMethodV;
external ffi.Pointer<
ffi.NativeFunction<
JBooleanMarker Function(ffi.Pointer<JniEnv1>, JObjectPtr,
JMethodIDPtr, ffi.Pointer<JValue>)>> CallBooleanMethodA;
external ffi.Pointer<
ffi.NativeFunction<
JByteMarker Function(
ffi.Pointer<JniEnv1>, JObjectPtr, JMethodIDPtr)>> CallByteMethod;
external ffi.Pointer<ffi.Void> _CallByteMethodV;
external ffi.Pointer<
ffi.NativeFunction<
JByteMarker Function(ffi.Pointer<JniEnv1>, JObjectPtr, JMethodIDPtr,
ffi.Pointer<JValue>)>> CallByteMethodA;
external ffi.Pointer<
ffi.NativeFunction<
JCharMarker Function(
ffi.Pointer<JniEnv1>, JObjectPtr, JMethodIDPtr)>> CallCharMethod;
external ffi.Pointer<ffi.Void> _CallCharMethodV;
external ffi.Pointer<
ffi.NativeFunction<
JCharMarker Function(ffi.Pointer<JniEnv1>, JObjectPtr, JMethodIDPtr,
ffi.Pointer<JValue>)>> CallCharMethodA;
external ffi.Pointer<
ffi.NativeFunction<
JShortMarker Function(
ffi.Pointer<JniEnv1>, JObjectPtr, JMethodIDPtr)>> CallShortMethod;
external ffi.Pointer<ffi.Void> _CallShortMethodV;
external ffi.Pointer<
ffi.NativeFunction<
JShortMarker Function(ffi.Pointer<JniEnv1>, JObjectPtr, JMethodIDPtr,
ffi.Pointer<JValue>)>> CallShortMethodA;
external ffi.Pointer<
ffi.NativeFunction<
JIntMarker Function(
ffi.Pointer<JniEnv1>, JObjectPtr, JMethodIDPtr)>> CallIntMethod;
external ffi.Pointer<ffi.Void> _CallIntMethodV;
external ffi.Pointer<
ffi.NativeFunction<
JIntMarker Function(ffi.Pointer<JniEnv1>, JObjectPtr, JMethodIDPtr,
ffi.Pointer<JValue>)>> CallIntMethodA;
external ffi.Pointer<
ffi.NativeFunction<
JLongMarker Function(
ffi.Pointer<JniEnv1>, JObjectPtr, JMethodIDPtr)>> CallLongMethod;
external ffi.Pointer<ffi.Void> _CallLongMethodV;
external ffi.Pointer<
ffi.NativeFunction<
JLongMarker Function(ffi.Pointer<JniEnv1>, JObjectPtr, JMethodIDPtr,
ffi.Pointer<JValue>)>> CallLongMethodA;
external ffi.Pointer<
ffi.NativeFunction<
JFloatMarker Function(
ffi.Pointer<JniEnv1>, JObjectPtr, JMethodIDPtr)>> CallFloatMethod;
external ffi.Pointer<ffi.Void> _CallFloatMethodV;
external ffi.Pointer<
ffi.NativeFunction<
JFloatMarker Function(ffi.Pointer<JniEnv1>, JObjectPtr, JMethodIDPtr,
ffi.Pointer<JValue>)>> CallFloatMethodA;
external ffi.Pointer<
ffi.NativeFunction<
JDoubleMarker Function(
ffi.Pointer<JniEnv1>, JObjectPtr, JMethodIDPtr)>>
CallDoubleMethod;
external ffi.Pointer<ffi.Void> _CallDoubleMethodV;
external ffi.Pointer<
ffi.NativeFunction<
JDoubleMarker Function(ffi.Pointer<JniEnv1>, JObjectPtr, JMethodIDPtr,
ffi.Pointer<JValue>)>> CallDoubleMethodA;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(
ffi.Pointer<JniEnv1>, JObjectPtr, JMethodIDPtr)>> CallVoidMethod;
external ffi.Pointer<ffi.Void> _CallVoidMethodV;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(ffi.Pointer<JniEnv1>, JObjectPtr, JMethodIDPtr,
ffi.Pointer<JValue>)>> CallVoidMethodA;
external ffi.Pointer<
ffi.NativeFunction<
JObjectPtr Function(
ffi.Pointer<JniEnv1>, JObjectPtr, JClassPtr, JMethodIDPtr)>>
CallNonvirtualObjectMethod;
external ffi.Pointer<ffi.Void> _CallNonvirtualObjectMethodV;
external ffi.Pointer<
ffi.NativeFunction<
JObjectPtr Function(ffi.Pointer<JniEnv1>, JObjectPtr, JClassPtr,
JMethodIDPtr, ffi.Pointer<JValue>)>> CallNonvirtualObjectMethodA;
external ffi.Pointer<
ffi.NativeFunction<
JBooleanMarker Function(
ffi.Pointer<JniEnv1>, JObjectPtr, JClassPtr, JMethodIDPtr)>>
CallNonvirtualBooleanMethod;
external ffi.Pointer<ffi.Void> _CallNonvirtualBooleanMethodV;
external ffi.Pointer<
ffi.NativeFunction<
JBooleanMarker Function(ffi.Pointer<JniEnv1>, JObjectPtr, JClassPtr,
JMethodIDPtr, ffi.Pointer<JValue>)>> CallNonvirtualBooleanMethodA;
external ffi.Pointer<
ffi.NativeFunction<
JByteMarker Function(
ffi.Pointer<JniEnv1>, JObjectPtr, JClassPtr, JMethodIDPtr)>>
CallNonvirtualByteMethod;
external ffi.Pointer<ffi.Void> _CallNonvirtualByteMethodV;
external ffi.Pointer<
ffi.NativeFunction<
JByteMarker Function(ffi.Pointer<JniEnv1>, JObjectPtr, JClassPtr,
JMethodIDPtr, ffi.Pointer<JValue>)>> CallNonvirtualByteMethodA;
external ffi.Pointer<
ffi.NativeFunction<
JCharMarker Function(
ffi.Pointer<JniEnv1>, JObjectPtr, JClassPtr, JMethodIDPtr)>>
CallNonvirtualCharMethod;
external ffi.Pointer<ffi.Void> _CallNonvirtualCharMethodV;
external ffi.Pointer<
ffi.NativeFunction<
JCharMarker Function(ffi.Pointer<JniEnv1>, JObjectPtr, JClassPtr,
JMethodIDPtr, ffi.Pointer<JValue>)>> CallNonvirtualCharMethodA;
external ffi.Pointer<
ffi.NativeFunction<
JShortMarker Function(
ffi.Pointer<JniEnv1>, JObjectPtr, JClassPtr, JMethodIDPtr)>>
CallNonvirtualShortMethod;
external ffi.Pointer<ffi.Void> _CallNonvirtualShortMethodV;
external ffi.Pointer<
ffi.NativeFunction<
JShortMarker Function(ffi.Pointer<JniEnv1>, JObjectPtr, JClassPtr,
JMethodIDPtr, ffi.Pointer<JValue>)>> CallNonvirtualShortMethodA;
external ffi.Pointer<
ffi.NativeFunction<
JIntMarker Function(
ffi.Pointer<JniEnv1>, JObjectPtr, JClassPtr, JMethodIDPtr)>>
CallNonvirtualIntMethod;
external ffi.Pointer<ffi.Void> _CallNonvirtualIntMethodV;
external ffi.Pointer<
ffi.NativeFunction<
JIntMarker Function(ffi.Pointer<JniEnv1>, JObjectPtr, JClassPtr,
JMethodIDPtr, ffi.Pointer<JValue>)>> CallNonvirtualIntMethodA;
external ffi.Pointer<
ffi.NativeFunction<
JLongMarker Function(
ffi.Pointer<JniEnv1>, JObjectPtr, JClassPtr, JMethodIDPtr)>>
CallNonvirtualLongMethod;
external ffi.Pointer<ffi.Void> _CallNonvirtualLongMethodV;
external ffi.Pointer<
ffi.NativeFunction<
JLongMarker Function(ffi.Pointer<JniEnv1>, JObjectPtr, JClassPtr,
JMethodIDPtr, ffi.Pointer<JValue>)>> CallNonvirtualLongMethodA;
external ffi.Pointer<
ffi.NativeFunction<
JFloatMarker Function(
ffi.Pointer<JniEnv1>, JObjectPtr, JClassPtr, JMethodIDPtr)>>
CallNonvirtualFloatMethod;
external ffi.Pointer<ffi.Void> _CallNonvirtualFloatMethodV;
external ffi.Pointer<
ffi.NativeFunction<
JFloatMarker Function(ffi.Pointer<JniEnv1>, JObjectPtr, JClassPtr,
JMethodIDPtr, ffi.Pointer<JValue>)>> CallNonvirtualFloatMethodA;
external ffi.Pointer<
ffi.NativeFunction<
JDoubleMarker Function(
ffi.Pointer<JniEnv1>, JObjectPtr, JClassPtr, JMethodIDPtr)>>
CallNonvirtualDoubleMethod;
external ffi.Pointer<ffi.Void> _CallNonvirtualDoubleMethodV;
external ffi.Pointer<
ffi.NativeFunction<
JDoubleMarker Function(ffi.Pointer<JniEnv1>, JObjectPtr, JClassPtr,
JMethodIDPtr, ffi.Pointer<JValue>)>> CallNonvirtualDoubleMethodA;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(
ffi.Pointer<JniEnv1>, JObjectPtr, JClassPtr, JMethodIDPtr)>>
CallNonvirtualVoidMethod;
external ffi.Pointer<ffi.Void> _CallNonvirtualVoidMethodV;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(ffi.Pointer<JniEnv1>, JObjectPtr, JClassPtr,
JMethodIDPtr, ffi.Pointer<JValue>)>> CallNonvirtualVoidMethodA;
external ffi.Pointer<
ffi.NativeFunction<
JFieldIDPtr Function(ffi.Pointer<JniEnv1>, JClassPtr,
ffi.Pointer<ffi.Char>, ffi.Pointer<ffi.Char>)>> GetFieldID;
external ffi.Pointer<
ffi.NativeFunction<
JObjectPtr Function(
ffi.Pointer<JniEnv1>, JObjectPtr, JFieldIDPtr)>> GetObjectField;
external ffi.Pointer<
ffi.NativeFunction<
JBooleanMarker Function(
ffi.Pointer<JniEnv1>, JObjectPtr, JFieldIDPtr)>> GetBooleanField;
external ffi.Pointer<
ffi.NativeFunction<
JByteMarker Function(
ffi.Pointer<JniEnv1>, JObjectPtr, JFieldIDPtr)>> GetByteField;
external ffi.Pointer<
ffi.NativeFunction<
JCharMarker Function(
ffi.Pointer<JniEnv1>, JObjectPtr, JFieldIDPtr)>> GetCharField;
external ffi.Pointer<
ffi.NativeFunction<
JShortMarker Function(
ffi.Pointer<JniEnv1>, JObjectPtr, JFieldIDPtr)>> GetShortField;
external ffi.Pointer<
ffi.NativeFunction<
JIntMarker Function(
ffi.Pointer<JniEnv1>, JObjectPtr, JFieldIDPtr)>> GetIntField;
external ffi.Pointer<
ffi.NativeFunction<
JLongMarker Function(
ffi.Pointer<JniEnv1>, JObjectPtr, JFieldIDPtr)>> GetLongField;
external ffi.Pointer<
ffi.NativeFunction<
JFloatMarker Function(
ffi.Pointer<JniEnv1>, JObjectPtr, JFieldIDPtr)>> GetFloatField;
external ffi.Pointer<
ffi.NativeFunction<
JDoubleMarker Function(
ffi.Pointer<JniEnv1>, JObjectPtr, JFieldIDPtr)>> GetDoubleField;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(
ffi.Pointer<JniEnv1>, JObjectPtr, JFieldIDPtr, JObjectPtr)>>
SetObjectField;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(ffi.Pointer<JniEnv1>, JObjectPtr, JFieldIDPtr,
JBooleanMarker)>> SetBooleanField;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(
ffi.Pointer<JniEnv1>, JObjectPtr, JFieldIDPtr, JByteMarker)>>
SetByteField;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(
ffi.Pointer<JniEnv1>, JObjectPtr, JFieldIDPtr, JCharMarker)>>
SetCharField;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(
ffi.Pointer<JniEnv1>, JObjectPtr, JFieldIDPtr, JShortMarker)>>
SetShortField;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(
ffi.Pointer<JniEnv1>, JObjectPtr, JFieldIDPtr, JIntMarker)>>
SetIntField;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(
ffi.Pointer<JniEnv1>, JObjectPtr, JFieldIDPtr, JLongMarker)>>
SetLongField;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(
ffi.Pointer<JniEnv1>, JObjectPtr, JFieldIDPtr, JFloatMarker)>>
SetFloatField;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(ffi.Pointer<JniEnv1>, JObjectPtr, JFieldIDPtr,
JDoubleMarker)>> SetDoubleField;
external ffi.Pointer<
ffi.NativeFunction<
JMethodIDPtr Function(ffi.Pointer<JniEnv1>, JClassPtr,
ffi.Pointer<ffi.Char>, ffi.Pointer<ffi.Char>)>> GetStaticMethodID;
external ffi.Pointer<
ffi.NativeFunction<
JObjectPtr Function(
ffi.Pointer<JniEnv1>, JClassPtr, JMethodIDPtr)>>
CallStaticObjectMethod;
external ffi.Pointer<ffi.Void> _CallStaticObjectMethodV;
external ffi.Pointer<
ffi.NativeFunction<
JObjectPtr Function(ffi.Pointer<JniEnv1>, JClassPtr, JMethodIDPtr,
ffi.Pointer<JValue>)>> CallStaticObjectMethodA;
external ffi.Pointer<
ffi.NativeFunction<
JBooleanMarker Function(
ffi.Pointer<JniEnv1>, JClassPtr, JMethodIDPtr)>>
CallStaticBooleanMethod;
external ffi.Pointer<ffi.Void> _CallStaticBooleanMethodV;
external ffi.Pointer<
ffi.NativeFunction<
JBooleanMarker Function(ffi.Pointer<JniEnv1>, JClassPtr, JMethodIDPtr,
ffi.Pointer<JValue>)>> CallStaticBooleanMethodA;
external ffi.Pointer<
ffi.NativeFunction<
JByteMarker Function(
ffi.Pointer<JniEnv1>, JClassPtr, JMethodIDPtr)>>
CallStaticByteMethod;
external ffi.Pointer<ffi.Void> _CallStaticByteMethodV;
external ffi.Pointer<
ffi.NativeFunction<
JByteMarker Function(ffi.Pointer<JniEnv1>, JClassPtr, JMethodIDPtr,
ffi.Pointer<JValue>)>> CallStaticByteMethodA;
external ffi.Pointer<
ffi.NativeFunction<
JCharMarker Function(
ffi.Pointer<JniEnv1>, JClassPtr, JMethodIDPtr)>>
CallStaticCharMethod;
external ffi.Pointer<ffi.Void> _CallStaticCharMethodV;
external ffi.Pointer<
ffi.NativeFunction<
JCharMarker Function(ffi.Pointer<JniEnv1>, JClassPtr, JMethodIDPtr,
ffi.Pointer<JValue>)>> CallStaticCharMethodA;
external ffi.Pointer<
ffi.NativeFunction<
JShortMarker Function(
ffi.Pointer<JniEnv1>, JClassPtr, JMethodIDPtr)>>
CallStaticShortMethod;
external ffi.Pointer<ffi.Void> _CallStaticShortMethodV;
external ffi.Pointer<
ffi.NativeFunction<
JShortMarker Function(ffi.Pointer<JniEnv1>, JClassPtr, JMethodIDPtr,
ffi.Pointer<JValue>)>> CallStaticShortMethodA;
external ffi.Pointer<
ffi.NativeFunction<
JIntMarker Function(
ffi.Pointer<JniEnv1>, JClassPtr, JMethodIDPtr)>>
CallStaticIntMethod;
external ffi.Pointer<ffi.Void> _CallStaticIntMethodV;
external ffi.Pointer<
ffi.NativeFunction<
JIntMarker Function(ffi.Pointer<JniEnv1>, JClassPtr, JMethodIDPtr,
ffi.Pointer<JValue>)>> CallStaticIntMethodA;
external ffi.Pointer<
ffi.NativeFunction<
JLongMarker Function(
ffi.Pointer<JniEnv1>, JClassPtr, JMethodIDPtr)>>
CallStaticLongMethod;
external ffi.Pointer<ffi.Void> _CallStaticLongMethodV;
external ffi.Pointer<
ffi.NativeFunction<
JLongMarker Function(ffi.Pointer<JniEnv1>, JClassPtr, JMethodIDPtr,
ffi.Pointer<JValue>)>> CallStaticLongMethodA;
external ffi.Pointer<
ffi.NativeFunction<
JFloatMarker Function(
ffi.Pointer<JniEnv1>, JClassPtr, JMethodIDPtr)>>
CallStaticFloatMethod;
external ffi.Pointer<ffi.Void> _CallStaticFloatMethodV;
external ffi.Pointer<
ffi.NativeFunction<
JFloatMarker Function(ffi.Pointer<JniEnv1>, JClassPtr, JMethodIDPtr,
ffi.Pointer<JValue>)>> CallStaticFloatMethodA;
external ffi.Pointer<
ffi.NativeFunction<
JDoubleMarker Function(
ffi.Pointer<JniEnv1>, JClassPtr, JMethodIDPtr)>>
CallStaticDoubleMethod;
external ffi.Pointer<ffi.Void> _CallStaticDoubleMethodV;
external ffi.Pointer<
ffi.NativeFunction<
JDoubleMarker Function(ffi.Pointer<JniEnv1>, JClassPtr, JMethodIDPtr,
ffi.Pointer<JValue>)>> CallStaticDoubleMethodA;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(ffi.Pointer<JniEnv1>, JClassPtr, JMethodIDPtr)>>
CallStaticVoidMethod;
external ffi.Pointer<ffi.Void> _CallStaticVoidMethodV;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(ffi.Pointer<JniEnv1>, JClassPtr, JMethodIDPtr,
ffi.Pointer<JValue>)>> CallStaticVoidMethodA;
external ffi.Pointer<
ffi.NativeFunction<
JFieldIDPtr Function(ffi.Pointer<JniEnv1>, JClassPtr,
ffi.Pointer<ffi.Char>, ffi.Pointer<ffi.Char>)>> GetStaticFieldID;
external ffi.Pointer<
ffi.NativeFunction<
JObjectPtr Function(
ffi.Pointer<JniEnv1>, JClassPtr, JFieldIDPtr)>>
GetStaticObjectField;
external ffi.Pointer<
ffi.NativeFunction<
JBooleanMarker Function(
ffi.Pointer<JniEnv1>, JClassPtr, JFieldIDPtr)>>
GetStaticBooleanField;
external ffi.Pointer<
ffi.NativeFunction<
JByteMarker Function(
ffi.Pointer<JniEnv1>, JClassPtr, JFieldIDPtr)>>
GetStaticByteField;
external ffi.Pointer<
ffi.NativeFunction<
JCharMarker Function(
ffi.Pointer<JniEnv1>, JClassPtr, JFieldIDPtr)>>
GetStaticCharField;
external ffi.Pointer<
ffi.NativeFunction<
JShortMarker Function(
ffi.Pointer<JniEnv1>, JClassPtr, JFieldIDPtr)>>
GetStaticShortField;
external ffi.Pointer<
ffi.NativeFunction<
JIntMarker Function(
ffi.Pointer<JniEnv1>, JClassPtr, JFieldIDPtr)>> GetStaticIntField;
external ffi.Pointer<
ffi.NativeFunction<
JLongMarker Function(
ffi.Pointer<JniEnv1>, JClassPtr, JFieldIDPtr)>>
GetStaticLongField;
external ffi.Pointer<
ffi.NativeFunction<
JFloatMarker Function(
ffi.Pointer<JniEnv1>, JClassPtr, JFieldIDPtr)>>
GetStaticFloatField;
external ffi.Pointer<
ffi.NativeFunction<
JDoubleMarker Function(
ffi.Pointer<JniEnv1>, JClassPtr, JFieldIDPtr)>>
GetStaticDoubleField;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(
ffi.Pointer<JniEnv1>, JClassPtr, JFieldIDPtr, JObjectPtr)>>
SetStaticObjectField;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(ffi.Pointer<JniEnv1>, JClassPtr, JFieldIDPtr,
JBooleanMarker)>> SetStaticBooleanField;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(
ffi.Pointer<JniEnv1>, JClassPtr, JFieldIDPtr, JByteMarker)>>
SetStaticByteField;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(
ffi.Pointer<JniEnv1>, JClassPtr, JFieldIDPtr, JCharMarker)>>
SetStaticCharField;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(
ffi.Pointer<JniEnv1>, JClassPtr, JFieldIDPtr, JShortMarker)>>
SetStaticShortField;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(
ffi.Pointer<JniEnv1>, JClassPtr, JFieldIDPtr, JIntMarker)>>
SetStaticIntField;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(
ffi.Pointer<JniEnv1>, JClassPtr, JFieldIDPtr, JLongMarker)>>
SetStaticLongField;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(
ffi.Pointer<JniEnv1>, JClassPtr, JFieldIDPtr, JFloatMarker)>>
SetStaticFloatField;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(
ffi.Pointer<JniEnv1>, JClassPtr, JFieldIDPtr, JDoubleMarker)>>
SetStaticDoubleField;
external ffi.Pointer<
ffi.NativeFunction<
JStringPtr Function(
ffi.Pointer<JniEnv1>, ffi.Pointer<JCharMarker>, JSizeMarker)>>
NewString;
external ffi.Pointer<
ffi.NativeFunction<
JSizeMarker Function(ffi.Pointer<JniEnv1>, JStringPtr)>>
GetStringLength;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Pointer<JCharMarker> Function(ffi.Pointer<JniEnv1>, JStringPtr,
ffi.Pointer<JBooleanMarker>)>> GetStringChars;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(
ffi.Pointer<JniEnv1>, JStringPtr, ffi.Pointer<JCharMarker>)>>
ReleaseStringChars;
external ffi.Pointer<
ffi.NativeFunction<
JStringPtr Function(ffi.Pointer<JniEnv1>, ffi.Pointer<ffi.Char>)>>
NewStringUTF;
external ffi.Pointer<
ffi.NativeFunction<
JSizeMarker Function(ffi.Pointer<JniEnv1>, JStringPtr)>>
GetStringUTFLength;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Pointer<ffi.Char> Function(ffi.Pointer<JniEnv1>, JStringPtr,
ffi.Pointer<JBooleanMarker>)>> GetStringUTFChars;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(
ffi.Pointer<JniEnv1>, JStringPtr, ffi.Pointer<ffi.Char>)>>
ReleaseStringUTFChars;
external ffi.Pointer<
ffi.NativeFunction<
JSizeMarker Function(ffi.Pointer<JniEnv1>, JArrayPtr)>>
GetArrayLength;
external ffi.Pointer<
ffi.NativeFunction<
JObjectArrayPtr Function(
ffi.Pointer<JniEnv1>, JSizeMarker, JClassPtr, JObjectPtr)>>
NewObjectArray;
external ffi.Pointer<
ffi.NativeFunction<
JObjectPtr Function(
ffi.Pointer<JniEnv1>, JObjectArrayPtr, JSizeMarker)>>
GetObjectArrayElement;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(ffi.Pointer<JniEnv1>, JObjectArrayPtr, JSizeMarker,
JObjectPtr)>> SetObjectArrayElement;
external ffi.Pointer<
ffi.NativeFunction<
JBooleanArrayPtr Function(ffi.Pointer<JniEnv1>, JSizeMarker)>>
NewBooleanArray;
external ffi.Pointer<
ffi.NativeFunction<
JByteArrayPtr Function(ffi.Pointer<JniEnv1>, JSizeMarker)>>
NewByteArray;
external ffi.Pointer<
ffi.NativeFunction<
JCharArrayPtr Function(ffi.Pointer<JniEnv1>, JSizeMarker)>>
NewCharArray;
external ffi.Pointer<
ffi.NativeFunction<
JShortArrayPtr Function(ffi.Pointer<JniEnv1>, JSizeMarker)>>
NewShortArray;
external ffi.Pointer<
ffi.NativeFunction<
JIntArrayPtr Function(ffi.Pointer<JniEnv1>, JSizeMarker)>>
NewIntArray;
external ffi.Pointer<
ffi.NativeFunction<
JLongArrayPtr Function(ffi.Pointer<JniEnv1>, JSizeMarker)>>
NewLongArray;
external ffi.Pointer<
ffi.NativeFunction<
JFloatArrayPtr Function(ffi.Pointer<JniEnv1>, JSizeMarker)>>
NewFloatArray;
external ffi.Pointer<
ffi.NativeFunction<
JDoubleArrayPtr Function(ffi.Pointer<JniEnv1>, JSizeMarker)>>
NewDoubleArray;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Pointer<JBooleanMarker> Function(
ffi.Pointer<JniEnv1>,
JBooleanArrayPtr,
ffi.Pointer<JBooleanMarker>)>> GetBooleanArrayElements;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Pointer<JByteMarker> Function(ffi.Pointer<JniEnv1>, JByteArrayPtr,
ffi.Pointer<JBooleanMarker>)>> GetByteArrayElements;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Pointer<JCharMarker> Function(ffi.Pointer<JniEnv1>, JCharArrayPtr,
ffi.Pointer<JBooleanMarker>)>> GetCharArrayElements;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Pointer<JShortMarker> Function(
ffi.Pointer<JniEnv1>,
JShortArrayPtr,
ffi.Pointer<JBooleanMarker>)>> GetShortArrayElements;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Pointer<JIntMarker> Function(ffi.Pointer<JniEnv1>, JIntArrayPtr,
ffi.Pointer<JBooleanMarker>)>> GetIntArrayElements;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Pointer<JLongMarker> Function(ffi.Pointer<JniEnv1>, JLongArrayPtr,
ffi.Pointer<JBooleanMarker>)>> GetLongArrayElements;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Pointer<JFloatMarker> Function(
ffi.Pointer<JniEnv1>,
JFloatArrayPtr,
ffi.Pointer<JBooleanMarker>)>> GetFloatArrayElements;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Pointer<JDoubleMarker> Function(
ffi.Pointer<JniEnv1>,
JDoubleArrayPtr,
ffi.Pointer<JBooleanMarker>)>> GetDoubleArrayElements;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(
ffi.Pointer<JniEnv1>,
JBooleanArrayPtr,
ffi.Pointer<JBooleanMarker>,
JIntMarker)>> ReleaseBooleanArrayElements;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(ffi.Pointer<JniEnv1>, JByteArrayPtr,
ffi.Pointer<JByteMarker>, JIntMarker)>> ReleaseByteArrayElements;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(ffi.Pointer<JniEnv1>, JCharArrayPtr,
ffi.Pointer<JCharMarker>, JIntMarker)>> ReleaseCharArrayElements;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(
ffi.Pointer<JniEnv1>,
JShortArrayPtr,
ffi.Pointer<JShortMarker>,
JIntMarker)>> ReleaseShortArrayElements;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(ffi.Pointer<JniEnv1>, JIntArrayPtr,
ffi.Pointer<JIntMarker>, JIntMarker)>> ReleaseIntArrayElements;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(ffi.Pointer<JniEnv1>, JLongArrayPtr,
ffi.Pointer<JLongMarker>, JIntMarker)>> ReleaseLongArrayElements;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(
ffi.Pointer<JniEnv1>,
JFloatArrayPtr,
ffi.Pointer<JFloatMarker>,
JIntMarker)>> ReleaseFloatArrayElements;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(
ffi.Pointer<JniEnv1>,
JDoubleArrayPtr,
ffi.Pointer<JDoubleMarker>,
JIntMarker)>> ReleaseDoubleArrayElements;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(ffi.Pointer<JniEnv1>, JBooleanArrayPtr, JSizeMarker,
JSizeMarker, ffi.Pointer<JBooleanMarker>)>> GetBooleanArrayRegion;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(ffi.Pointer<JniEnv1>, JByteArrayPtr, JSizeMarker,
JSizeMarker, ffi.Pointer<JByteMarker>)>> GetByteArrayRegion;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(ffi.Pointer<JniEnv1>, JCharArrayPtr, JSizeMarker,
JSizeMarker, ffi.Pointer<JCharMarker>)>> GetCharArrayRegion;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(ffi.Pointer<JniEnv1>, JShortArrayPtr, JSizeMarker,
JSizeMarker, ffi.Pointer<JShortMarker>)>> GetShortArrayRegion;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(ffi.Pointer<JniEnv1>, JIntArrayPtr, JSizeMarker,
JSizeMarker, ffi.Pointer<JIntMarker>)>> GetIntArrayRegion;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(ffi.Pointer<JniEnv1>, JLongArrayPtr, JSizeMarker,
JSizeMarker, ffi.Pointer<JLongMarker>)>> GetLongArrayRegion;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(ffi.Pointer<JniEnv1>, JFloatArrayPtr, JSizeMarker,
JSizeMarker, ffi.Pointer<JFloatMarker>)>> GetFloatArrayRegion;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(ffi.Pointer<JniEnv1>, JDoubleArrayPtr, JSizeMarker,
JSizeMarker, ffi.Pointer<JDoubleMarker>)>> GetDoubleArrayRegion;
/// spec shows these without const; some jni.h do, some don't
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(ffi.Pointer<JniEnv1>, JBooleanArrayPtr, JSizeMarker,
JSizeMarker, ffi.Pointer<JBooleanMarker>)>> SetBooleanArrayRegion;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(ffi.Pointer<JniEnv1>, JByteArrayPtr, JSizeMarker,
JSizeMarker, ffi.Pointer<JByteMarker>)>> SetByteArrayRegion;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(ffi.Pointer<JniEnv1>, JCharArrayPtr, JSizeMarker,
JSizeMarker, ffi.Pointer<JCharMarker>)>> SetCharArrayRegion;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(ffi.Pointer<JniEnv1>, JShortArrayPtr, JSizeMarker,
JSizeMarker, ffi.Pointer<JShortMarker>)>> SetShortArrayRegion;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(ffi.Pointer<JniEnv1>, JIntArrayPtr, JSizeMarker,
JSizeMarker, ffi.Pointer<JIntMarker>)>> SetIntArrayRegion;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(ffi.Pointer<JniEnv1>, JLongArrayPtr, JSizeMarker,
JSizeMarker, ffi.Pointer<JLongMarker>)>> SetLongArrayRegion;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(ffi.Pointer<JniEnv1>, JFloatArrayPtr, JSizeMarker,
JSizeMarker, ffi.Pointer<JFloatMarker>)>> SetFloatArrayRegion;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(ffi.Pointer<JniEnv1>, JDoubleArrayPtr, JSizeMarker,
JSizeMarker, ffi.Pointer<JDoubleMarker>)>> SetDoubleArrayRegion;
external ffi.Pointer<
ffi.NativeFunction<
JIntMarker Function(ffi.Pointer<JniEnv1>, JClassPtr,
ffi.Pointer<JNINativeMethod>, JIntMarker)>> RegisterNatives;
external ffi.Pointer<
ffi.NativeFunction<
JIntMarker Function(ffi.Pointer<JniEnv1>, JClassPtr)>>
UnregisterNatives;
external ffi.Pointer<
ffi.NativeFunction<
JIntMarker Function(ffi.Pointer<JniEnv1>, JObjectPtr)>> MonitorEnter;
external ffi.Pointer<
ffi.NativeFunction<
JIntMarker Function(ffi.Pointer<JniEnv1>, JObjectPtr)>> MonitorExit;
external ffi.Pointer<
ffi.NativeFunction<
JIntMarker Function(
ffi.Pointer<JniEnv1>, ffi.Pointer<ffi.Pointer<JavaVM>>)>>
GetJavaVM;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(ffi.Pointer<JniEnv1>, JStringPtr, JSizeMarker,
JSizeMarker, ffi.Pointer<JCharMarker>)>> GetStringRegion;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(ffi.Pointer<JniEnv1>, JStringPtr, JSizeMarker,
JSizeMarker, ffi.Pointer<ffi.Char>)>> GetStringUTFRegion;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Pointer<ffi.Void> Function(ffi.Pointer<JniEnv1>, JArrayPtr,
ffi.Pointer<JBooleanMarker>)>> GetPrimitiveArrayCritical;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(
ffi.Pointer<JniEnv1>,
JArrayPtr,
ffi.Pointer<ffi.Void>,
JIntMarker)>> ReleasePrimitiveArrayCritical;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Pointer<JCharMarker> Function(ffi.Pointer<JniEnv1>, JStringPtr,
ffi.Pointer<JBooleanMarker>)>> GetStringCritical;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(
ffi.Pointer<JniEnv1>, JStringPtr, ffi.Pointer<JCharMarker>)>>
ReleaseStringCritical;
external ffi.Pointer<
ffi.NativeFunction<
JWeakPtr Function(ffi.Pointer<JniEnv1>, JObjectPtr)>>
NewWeakGlobalRef;
external ffi.Pointer<
ffi.NativeFunction<ffi.Void Function(ffi.Pointer<JniEnv1>, JWeakPtr)>>
DeleteWeakGlobalRef;
external ffi.Pointer<
ffi.NativeFunction<JBooleanMarker Function(ffi.Pointer<JniEnv1>)>>
ExceptionCheck;
external ffi.Pointer<
ffi.NativeFunction<
JObjectPtr Function(
ffi.Pointer<JniEnv1>, ffi.Pointer<ffi.Void>, JLongMarker)>>
NewDirectByteBuffer;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Pointer<ffi.Void> Function(ffi.Pointer<JniEnv1>, JObjectPtr)>>
GetDirectBufferAddress;
external ffi.Pointer<
ffi.NativeFunction<
JLongMarker Function(ffi.Pointer<JniEnv1>, JObjectPtr)>>
GetDirectBufferCapacity;
/// added in JNI 1.6
external ffi.Pointer<
ffi.NativeFunction<
ffi.Int32 Function(ffi.Pointer<JniEnv1>, JObjectPtr)>>
GetObjectRefType;
}
typedef JniEnv1 = ffi.Pointer<JNINativeInterface>;
typedef JClassPtr = JObjectPtr;
/// "cardinal indices and sizes"
typedef JSizeMarker = JIntMarker;
typedef JMethodIDPtr = ffi.Pointer<jmethodID_>;
typedef JFieldIDPtr = ffi.Pointer<jfieldID_>;
typedef JThrowablePtr = JObjectPtr;
typedef JStringPtr = JObjectPtr;
typedef JArrayPtr = JObjectPtr;
typedef JObjectArrayPtr = JArrayPtr;
typedef JBooleanArrayPtr = JArrayPtr;
typedef JByteArrayPtr = JArrayPtr;
typedef JCharArrayPtr = JArrayPtr;
typedef JShortArrayPtr = JArrayPtr;
typedef JIntArrayPtr = JArrayPtr;
typedef JLongArrayPtr = JArrayPtr;
typedef JFloatArrayPtr = JArrayPtr;
typedef JDoubleArrayPtr = JArrayPtr;
typedef JWeakPtr = JObjectPtr;
class JavaVMAttachArgs extends ffi.Struct {
/// must be >= JNI_VERSION_1_2
@JIntMarker()
external int version;
/// NULL or name of thread as modified UTF-8 str
external ffi.Pointer<ffi.Char> name;
/// global ref of a ThreadGroup object, or NULL
external JObjectPtr group;
}
/// JNI 1.2+ initialization. (As of 1.6, the pre-1.2 structures are no
/// longer supported.)
class JavaVMOption extends ffi.Struct {
external ffi.Pointer<ffi.Char> optionString;
external ffi.Pointer<ffi.Void> extraInfo;
}
class JavaVMInitArgs extends ffi.Struct {
/// use JNI_VERSION_1_2 or later
@JIntMarker()
external int version;
@JIntMarker()
external int nOptions;
external ffi.Pointer<JavaVMOption> options;
@JBooleanMarker()
external int ignoreUnrecognized;
}
/// Types used by JNI API to distinguish between primitive types.
abstract class JniCallType {
static const int booleanType = 0;
static const int byteType = 1;
static const int shortType = 2;
static const int charType = 3;
static const int intType = 4;
static const int longType = 5;
static const int floatType = 6;
static const int doubleType = 7;
static const int objectType = 8;
static const int voidType = 9;
}
/// Result type for use by JNI.
///
/// If [exception] is null, it means the result is valid.
/// It's assumed that the caller knows the expected type in [result].
class JniResult extends ffi.Struct {
external JValue result;
external JThrowablePtr exception;
}
/// Similar to [JniResult] but for class lookups.
class JniClassLookupResult extends ffi.Struct {
external JClassPtr classRef;
external JThrowablePtr exception;
}
/// Similar to [JniResult] but for method/field ID lookups.
class JniPointerResult extends ffi.Struct {
external ffi.Pointer<ffi.Void> id;
external JThrowablePtr exception;
}
/// JniExceptionDetails holds 2 jstring objects, one is the result of
/// calling `toString` on exception object, other is stack trace;
class JniExceptionDetails extends ffi.Struct {
external JStringPtr message;
external JStringPtr stacktrace;
}
/// This struct contains functions which wrap method call / field access conveniently along with
/// exception checking.
///
/// Flutter embedding checks for pending JNI exceptions before an FFI transition, which requires us
/// to check for and clear the exception before returning to dart code, which requires these functions
/// to return result types.
class JniAccessors extends ffi.Struct {
external ffi.Pointer<
ffi.NativeFunction<
JniClassLookupResult Function(ffi.Pointer<ffi.Char>)>> getClass;
external ffi.Pointer<
ffi.NativeFunction<
JniPointerResult Function(
JClassPtr, ffi.Pointer<ffi.Char>, ffi.Pointer<ffi.Char>)>>
getFieldID;
external ffi.Pointer<
ffi.NativeFunction<
JniPointerResult Function(
JClassPtr, ffi.Pointer<ffi.Char>, ffi.Pointer<ffi.Char>)>>
getStaticFieldID;
external ffi.Pointer<
ffi.NativeFunction<
JniPointerResult Function(
JClassPtr, ffi.Pointer<ffi.Char>, ffi.Pointer<ffi.Char>)>>
getMethodID;
external ffi.Pointer<
ffi.NativeFunction<
JniPointerResult Function(
JClassPtr, ffi.Pointer<ffi.Char>, ffi.Pointer<ffi.Char>)>>
getStaticMethodID;
external ffi.Pointer<
ffi.NativeFunction<
JniResult Function(JClassPtr, JMethodIDPtr, ffi.Pointer<JValue>)>>
newObject;
external ffi.Pointer<
ffi.NativeFunction<JniPointerResult Function(JSizeMarker, ffi.Int)>>
newPrimitiveArray;
external ffi.Pointer<
ffi.NativeFunction<
JniPointerResult Function(JSizeMarker, JClassPtr, JObjectPtr)>>
newObjectArray;
external ffi.Pointer<
ffi.NativeFunction<JniResult Function(JArrayPtr, ffi.Int, ffi.Int)>>
getArrayElement;
external ffi.Pointer<
ffi.NativeFunction<
JniResult Function(
JObjectPtr, JMethodIDPtr, ffi.Int, ffi.Pointer<JValue>)>>
callMethod;
external ffi.Pointer<
ffi.NativeFunction<
JniResult Function(
JClassPtr, JMethodIDPtr, ffi.Int, ffi.Pointer<JValue>)>>
callStaticMethod;
external ffi.Pointer<
ffi.NativeFunction<
JniResult Function(JObjectPtr, JFieldIDPtr, ffi.Int)>> getField;
external ffi.Pointer<
ffi.NativeFunction<
JniResult Function(JClassPtr, JFieldIDPtr, ffi.Int)>> getStaticField;
external ffi.Pointer<
ffi.NativeFunction<JniExceptionDetails Function(JThrowablePtr)>>
getExceptionDetails;
}
extension JniAccessorsExtension on ffi.Pointer<JniAccessors> {
JniClassLookupResult getClass(ffi.Pointer<ffi.Char> internalName) {
return ref.getClass
.asFunction<JniClassLookupResult Function(ffi.Pointer<ffi.Char>)>()(
internalName);
}
JniPointerResult getFieldID(JClassPtr cls, ffi.Pointer<ffi.Char> fieldName,
ffi.Pointer<ffi.Char> signature) {
return ref.getFieldID.asFunction<
JniPointerResult Function(JClassPtr, ffi.Pointer<ffi.Char>,
ffi.Pointer<ffi.Char>)>()(cls, fieldName, signature);
}
JniPointerResult getStaticFieldID(JClassPtr cls,
ffi.Pointer<ffi.Char> fieldName, ffi.Pointer<ffi.Char> signature) {
return ref.getStaticFieldID.asFunction<
JniPointerResult Function(JClassPtr, ffi.Pointer<ffi.Char>,
ffi.Pointer<ffi.Char>)>()(cls, fieldName, signature);
}
JniPointerResult getMethodID(JClassPtr cls, ffi.Pointer<ffi.Char> methodName,
ffi.Pointer<ffi.Char> signature) {
return ref.getMethodID.asFunction<
JniPointerResult Function(JClassPtr, ffi.Pointer<ffi.Char>,
ffi.Pointer<ffi.Char>)>()(cls, methodName, signature);
}
JniPointerResult getStaticMethodID(JClassPtr cls,
ffi.Pointer<ffi.Char> methodName, ffi.Pointer<ffi.Char> signature) {
return ref.getStaticMethodID.asFunction<
JniPointerResult Function(JClassPtr, ffi.Pointer<ffi.Char>,
ffi.Pointer<ffi.Char>)>()(cls, methodName, signature);
}
JniResult newObject(
JClassPtr cls, JMethodIDPtr ctor, ffi.Pointer<JValue> args) {
return ref.newObject.asFunction<
JniResult Function(
JClassPtr, JMethodIDPtr, ffi.Pointer<JValue>)>()(cls, ctor, args);
}
JniPointerResult newPrimitiveArray(int length, int type) {
return ref.newPrimitiveArray
.asFunction<JniPointerResult Function(int, int)>()(length, type);
}
JniPointerResult newObjectArray(
int length, JClassPtr elementClass, JObjectPtr initialElement) {
return ref.newObjectArray.asFunction<
JniPointerResult Function(int, JClassPtr, JObjectPtr)>()(
length, elementClass, initialElement);
}
JniResult getArrayElement(JArrayPtr array, int index, int type) {
return ref.getArrayElement
.asFunction<JniResult Function(JArrayPtr, int, int)>()(
array, index, type);
}
JniResult callMethod(JObjectPtr obj, JMethodIDPtr methodID, int callType,
ffi.Pointer<JValue> args) {
return ref.callMethod.asFunction<
JniResult Function(JObjectPtr, JMethodIDPtr, int,
ffi.Pointer<JValue>)>()(obj, methodID, callType, args);
}
JniResult callStaticMethod(JClassPtr cls, JMethodIDPtr methodID, int callType,
ffi.Pointer<JValue> args) {
return ref.callStaticMethod.asFunction<
JniResult Function(JClassPtr, JMethodIDPtr, int,
ffi.Pointer<JValue>)>()(cls, methodID, callType, args);
}
JniResult getField(JObjectPtr obj, JFieldIDPtr fieldID, int callType) {
return ref.getField
.asFunction<JniResult Function(JObjectPtr, JFieldIDPtr, int)>()(
obj, fieldID, callType);
}
JniResult getStaticField(JClassPtr cls, JFieldIDPtr fieldID, int callType) {
return ref.getStaticField
.asFunction<JniResult Function(JClassPtr, JFieldIDPtr, int)>()(
cls, fieldID, callType);
}
JniExceptionDetails getExceptionDetails(JThrowablePtr exception) {
return ref.getExceptionDetails
.asFunction<JniExceptionDetails Function(JThrowablePtr)>()(exception);
}
}
/// Wrapper over JNIEnv in the JNI API, which can be used from multiple Dart
/// Threads.
///
/// It consists of wrappers to JNIEnv methods which manage the thread-local
/// JNIEnv pointer in C code. Additionally, any returned local reference value
/// is converted to global reference.
///
/// For the documentation on methods themselves, see the JNI Specification at
/// https://docs.oracle.com/javase/7/docs/technotes/guides/jni/spec/functions.html
///
/// Apart from the specification, the Android NDK's JNI page consists of useful
/// information about using the JNI:
/// https://developer.android.com/training/articles/perf-jni
class GlobalJniEnv extends ffi.Struct {
external ffi.Pointer<ffi.NativeFunction<JIntMarker Function()>> GetVersion;
external ffi.Pointer<
ffi.NativeFunction<
JClassPtr Function(ffi.Pointer<ffi.Char>, JObjectPtr,
ffi.Pointer<JByteMarker>, JSizeMarker)>> DefineClass;
external ffi.Pointer<
ffi.NativeFunction<JClassPtr Function(ffi.Pointer<ffi.Char>)>> FindClass;
external ffi.Pointer<ffi.NativeFunction<JMethodIDPtr Function(JObjectPtr)>>
FromReflectedMethod;
external ffi.Pointer<ffi.NativeFunction<JFieldIDPtr Function(JObjectPtr)>>
FromReflectedField;
external ffi.Pointer<
ffi.NativeFunction<
JObjectPtr Function(JClassPtr, JMethodIDPtr, JBooleanMarker)>>
ToReflectedMethod;
external ffi.Pointer<ffi.NativeFunction<JClassPtr Function(JClassPtr)>>
GetSuperclass;
external ffi.Pointer<
ffi.NativeFunction<JBooleanMarker Function(JClassPtr, JClassPtr)>>
IsAssignableFrom;
external ffi.Pointer<
ffi.NativeFunction<
JObjectPtr Function(JClassPtr, JFieldIDPtr, JBooleanMarker)>>
ToReflectedField;
external ffi.Pointer<ffi.NativeFunction<JIntMarker Function(JThrowablePtr)>>
Throw;
external ffi.Pointer<
ffi.NativeFunction<
JIntMarker Function(JClassPtr, ffi.Pointer<ffi.Char>)>> ThrowNew;
external ffi.Pointer<ffi.NativeFunction<JThrowablePtr Function()>>
ExceptionOccurred;
external ffi.Pointer<ffi.NativeFunction<ffi.Void Function()>>
ExceptionDescribe;
external ffi.Pointer<ffi.NativeFunction<ffi.Void Function()>> ExceptionClear;
external ffi
.Pointer<ffi.NativeFunction<ffi.Void Function(ffi.Pointer<ffi.Char>)>>
FatalError;
external ffi.Pointer<ffi.NativeFunction<JIntMarker Function(JIntMarker)>>
PushLocalFrame;
external ffi.Pointer<ffi.NativeFunction<JObjectPtr Function(JObjectPtr)>>
PopLocalFrame;
external ffi.Pointer<ffi.NativeFunction<JObjectPtr Function(JObjectPtr)>>
NewGlobalRef;
external ffi.Pointer<ffi.NativeFunction<ffi.Void Function(JObjectPtr)>>
DeleteGlobalRef;
external ffi.Pointer<
ffi.NativeFunction<JBooleanMarker Function(JObjectPtr, JObjectPtr)>>
IsSameObject;
external ffi.Pointer<ffi.NativeFunction<JIntMarker Function(JIntMarker)>>
EnsureLocalCapacity;
external ffi.Pointer<ffi.NativeFunction<JObjectPtr Function(JClassPtr)>>
AllocObject;
external ffi.Pointer<
ffi.NativeFunction<JObjectPtr Function(JClassPtr, JMethodIDPtr)>>
NewObject;
external ffi.Pointer<
ffi.NativeFunction<
JObjectPtr Function(
JClassPtr, JMethodIDPtr, ffi.Pointer<JValue>)>> NewObjectA;
external ffi.Pointer<ffi.NativeFunction<JClassPtr Function(JObjectPtr)>>
GetObjectClass;
external ffi.Pointer<
ffi.NativeFunction<JBooleanMarker Function(JObjectPtr, JClassPtr)>>
IsInstanceOf;
external ffi.Pointer<
ffi.NativeFunction<
JMethodIDPtr Function(
JClassPtr, ffi.Pointer<ffi.Char>, ffi.Pointer<ffi.Char>)>>
GetMethodID;
external ffi.Pointer<
ffi.NativeFunction<JObjectPtr Function(JObjectPtr, JMethodIDPtr)>>
CallObjectMethod;
external ffi.Pointer<
ffi.NativeFunction<
JObjectPtr Function(
JObjectPtr, JMethodIDPtr, ffi.Pointer<JValue>)>>
CallObjectMethodA;
external ffi.Pointer<
ffi.NativeFunction<JBooleanMarker Function(JObjectPtr, JMethodIDPtr)>>
CallBooleanMethod;
external ffi.Pointer<
ffi.NativeFunction<
JBooleanMarker Function(
JObjectPtr, JMethodIDPtr, ffi.Pointer<JValue>)>>
CallBooleanMethodA;
external ffi.Pointer<
ffi.NativeFunction<JByteMarker Function(JObjectPtr, JMethodIDPtr)>>
CallByteMethod;
external ffi.Pointer<
ffi.NativeFunction<
JByteMarker Function(
JObjectPtr, JMethodIDPtr, ffi.Pointer<JValue>)>> CallByteMethodA;
external ffi.Pointer<
ffi.NativeFunction<JCharMarker Function(JObjectPtr, JMethodIDPtr)>>
CallCharMethod;
external ffi.Pointer<
ffi.NativeFunction<
JCharMarker Function(
JObjectPtr, JMethodIDPtr, ffi.Pointer<JValue>)>> CallCharMethodA;
external ffi.Pointer<
ffi.NativeFunction<JShortMarker Function(JObjectPtr, JMethodIDPtr)>>
CallShortMethod;
external ffi.Pointer<
ffi.NativeFunction<
JShortMarker Function(
JObjectPtr, JMethodIDPtr, ffi.Pointer<JValue>)>> CallShortMethodA;
external ffi.Pointer<
ffi.NativeFunction<JIntMarker Function(JObjectPtr, JMethodIDPtr)>>
CallIntMethod;
external ffi.Pointer<
ffi.NativeFunction<
JIntMarker Function(
JObjectPtr, JMethodIDPtr, ffi.Pointer<JValue>)>> CallIntMethodA;
external ffi.Pointer<
ffi.NativeFunction<JLongMarker Function(JObjectPtr, JMethodIDPtr)>>
CallLongMethod;
external ffi.Pointer<
ffi.NativeFunction<
JLongMarker Function(
JObjectPtr, JMethodIDPtr, ffi.Pointer<JValue>)>> CallLongMethodA;
external ffi.Pointer<
ffi.NativeFunction<JFloatMarker Function(JObjectPtr, JMethodIDPtr)>>
CallFloatMethod;
external ffi.Pointer<
ffi.NativeFunction<
JFloatMarker Function(
JObjectPtr, JMethodIDPtr, ffi.Pointer<JValue>)>> CallFloatMethodA;
external ffi.Pointer<
ffi.NativeFunction<JDoubleMarker Function(JObjectPtr, JMethodIDPtr)>>
CallDoubleMethod;
external ffi.Pointer<
ffi.NativeFunction<
JDoubleMarker Function(
JObjectPtr, JMethodIDPtr, ffi.Pointer<JValue>)>>
CallDoubleMethodA;
external ffi.Pointer<
ffi.NativeFunction<ffi.Void Function(JObjectPtr, JMethodIDPtr)>>
CallVoidMethod;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(JObjectPtr, JMethodIDPtr, ffi.Pointer<JValue>)>>
CallVoidMethodA;
external ffi.Pointer<
ffi.NativeFunction<
JObjectPtr Function(JObjectPtr, JClassPtr, JMethodIDPtr)>>
CallNonvirtualObjectMethod;
external ffi.Pointer<
ffi.NativeFunction<
JObjectPtr Function(
JObjectPtr, JClassPtr, JMethodIDPtr, ffi.Pointer<JValue>)>>
CallNonvirtualObjectMethodA;
external ffi.Pointer<
ffi.NativeFunction<
JBooleanMarker Function(JObjectPtr, JClassPtr, JMethodIDPtr)>>
CallNonvirtualBooleanMethod;
external ffi.Pointer<
ffi.NativeFunction<
JBooleanMarker Function(
JObjectPtr, JClassPtr, JMethodIDPtr, ffi.Pointer<JValue>)>>
CallNonvirtualBooleanMethodA;
external ffi.Pointer<
ffi.NativeFunction<
JByteMarker Function(JObjectPtr, JClassPtr, JMethodIDPtr)>>
CallNonvirtualByteMethod;
external ffi.Pointer<
ffi.NativeFunction<
JByteMarker Function(
JObjectPtr, JClassPtr, JMethodIDPtr, ffi.Pointer<JValue>)>>
CallNonvirtualByteMethodA;
external ffi.Pointer<
ffi.NativeFunction<
JCharMarker Function(JObjectPtr, JClassPtr, JMethodIDPtr)>>
CallNonvirtualCharMethod;
external ffi.Pointer<
ffi.NativeFunction<
JCharMarker Function(
JObjectPtr, JClassPtr, JMethodIDPtr, ffi.Pointer<JValue>)>>
CallNonvirtualCharMethodA;
external ffi.Pointer<
ffi.NativeFunction<
JShortMarker Function(JObjectPtr, JClassPtr, JMethodIDPtr)>>
CallNonvirtualShortMethod;
external ffi.Pointer<
ffi.NativeFunction<
JShortMarker Function(
JObjectPtr, JClassPtr, JMethodIDPtr, ffi.Pointer<JValue>)>>
CallNonvirtualShortMethodA;
external ffi.Pointer<
ffi.NativeFunction<
JIntMarker Function(JObjectPtr, JClassPtr, JMethodIDPtr)>>
CallNonvirtualIntMethod;
external ffi.Pointer<
ffi.NativeFunction<
JIntMarker Function(
JObjectPtr, JClassPtr, JMethodIDPtr, ffi.Pointer<JValue>)>>
CallNonvirtualIntMethodA;
external ffi.Pointer<
ffi.NativeFunction<
JLongMarker Function(JObjectPtr, JClassPtr, JMethodIDPtr)>>
CallNonvirtualLongMethod;
external ffi.Pointer<
ffi.NativeFunction<
JLongMarker Function(
JObjectPtr, JClassPtr, JMethodIDPtr, ffi.Pointer<JValue>)>>
CallNonvirtualLongMethodA;
external ffi.Pointer<
ffi.NativeFunction<
JFloatMarker Function(JObjectPtr, JClassPtr, JMethodIDPtr)>>
CallNonvirtualFloatMethod;
external ffi.Pointer<
ffi.NativeFunction<
JFloatMarker Function(
JObjectPtr, JClassPtr, JMethodIDPtr, ffi.Pointer<JValue>)>>
CallNonvirtualFloatMethodA;
external ffi.Pointer<
ffi.NativeFunction<
JDoubleMarker Function(JObjectPtr, JClassPtr, JMethodIDPtr)>>
CallNonvirtualDoubleMethod;
external ffi.Pointer<
ffi.NativeFunction<
JDoubleMarker Function(
JObjectPtr, JClassPtr, JMethodIDPtr, ffi.Pointer<JValue>)>>
CallNonvirtualDoubleMethodA;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(JObjectPtr, JClassPtr, JMethodIDPtr)>>
CallNonvirtualVoidMethod;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(
JObjectPtr, JClassPtr, JMethodIDPtr, ffi.Pointer<JValue>)>>
CallNonvirtualVoidMethodA;
external ffi.Pointer<
ffi.NativeFunction<
JFieldIDPtr Function(
JClassPtr, ffi.Pointer<ffi.Char>, ffi.Pointer<ffi.Char>)>>
GetFieldID;
external ffi.Pointer<
ffi.NativeFunction<JObjectPtr Function(JObjectPtr, JFieldIDPtr)>>
GetObjectField;
external ffi.Pointer<
ffi.NativeFunction<JBooleanMarker Function(JObjectPtr, JFieldIDPtr)>>
GetBooleanField;
external ffi.Pointer<
ffi.NativeFunction<JByteMarker Function(JObjectPtr, JFieldIDPtr)>>
GetByteField;
external ffi.Pointer<
ffi.NativeFunction<JCharMarker Function(JObjectPtr, JFieldIDPtr)>>
GetCharField;
external ffi.Pointer<
ffi.NativeFunction<JShortMarker Function(JObjectPtr, JFieldIDPtr)>>
GetShortField;
external ffi.Pointer<
ffi.NativeFunction<JIntMarker Function(JObjectPtr, JFieldIDPtr)>>
GetIntField;
external ffi.Pointer<
ffi.NativeFunction<JLongMarker Function(JObjectPtr, JFieldIDPtr)>>
GetLongField;
external ffi.Pointer<
ffi.NativeFunction<JFloatMarker Function(JObjectPtr, JFieldIDPtr)>>
GetFloatField;
external ffi.Pointer<
ffi.NativeFunction<JDoubleMarker Function(JObjectPtr, JFieldIDPtr)>>
GetDoubleField;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(JObjectPtr, JFieldIDPtr, JObjectPtr)>>
SetObjectField;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(JObjectPtr, JFieldIDPtr, JBooleanMarker)>>
SetBooleanField;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(JObjectPtr, JFieldIDPtr, JByteMarker)>>
SetByteField;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(JObjectPtr, JFieldIDPtr, JCharMarker)>>
SetCharField;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(JObjectPtr, JFieldIDPtr, JShortMarker)>>
SetShortField;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(JObjectPtr, JFieldIDPtr, JIntMarker)>> SetIntField;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(JObjectPtr, JFieldIDPtr, JLongMarker)>>
SetLongField;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(JObjectPtr, JFieldIDPtr, JFloatMarker)>>
SetFloatField;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(JObjectPtr, JFieldIDPtr, JDoubleMarker)>>
SetDoubleField;
external ffi.Pointer<
ffi.NativeFunction<
JMethodIDPtr Function(
JClassPtr, ffi.Pointer<ffi.Char>, ffi.Pointer<ffi.Char>)>>
GetStaticMethodID;
external ffi.Pointer<
ffi.NativeFunction<JObjectPtr Function(JClassPtr, JMethodIDPtr)>>
CallStaticObjectMethod;
external ffi.Pointer<
ffi.NativeFunction<
JObjectPtr Function(
JClassPtr, JMethodIDPtr, ffi.Pointer<JValue>)>>
CallStaticObjectMethodA;
external ffi.Pointer<
ffi.NativeFunction<JBooleanMarker Function(JClassPtr, JMethodIDPtr)>>
CallStaticBooleanMethod;
external ffi.Pointer<
ffi.NativeFunction<
JBooleanMarker Function(
JClassPtr, JMethodIDPtr, ffi.Pointer<JValue>)>>
CallStaticBooleanMethodA;
external ffi.Pointer<
ffi.NativeFunction<JByteMarker Function(JClassPtr, JMethodIDPtr)>>
CallStaticByteMethod;
external ffi.Pointer<
ffi.NativeFunction<
JByteMarker Function(
JClassPtr, JMethodIDPtr, ffi.Pointer<JValue>)>>
CallStaticByteMethodA;
external ffi.Pointer<
ffi.NativeFunction<JCharMarker Function(JClassPtr, JMethodIDPtr)>>
CallStaticCharMethod;
external ffi.Pointer<
ffi.NativeFunction<
JCharMarker Function(
JClassPtr, JMethodIDPtr, ffi.Pointer<JValue>)>>
CallStaticCharMethodA;
external ffi.Pointer<
ffi.NativeFunction<JShortMarker Function(JClassPtr, JMethodIDPtr)>>
CallStaticShortMethod;
external ffi.Pointer<
ffi.NativeFunction<
JShortMarker Function(
JClassPtr, JMethodIDPtr, ffi.Pointer<JValue>)>>
CallStaticShortMethodA;
external ffi.Pointer<
ffi.NativeFunction<JIntMarker Function(JClassPtr, JMethodIDPtr)>>
CallStaticIntMethod;
external ffi.Pointer<
ffi.NativeFunction<
JIntMarker Function(
JClassPtr, JMethodIDPtr, ffi.Pointer<JValue>)>>
CallStaticIntMethodA;
external ffi.Pointer<
ffi.NativeFunction<JLongMarker Function(JClassPtr, JMethodIDPtr)>>
CallStaticLongMethod;
external ffi.Pointer<
ffi.NativeFunction<
JLongMarker Function(
JClassPtr, JMethodIDPtr, ffi.Pointer<JValue>)>>
CallStaticLongMethodA;
external ffi.Pointer<
ffi.NativeFunction<JFloatMarker Function(JClassPtr, JMethodIDPtr)>>
CallStaticFloatMethod;
external ffi.Pointer<
ffi.NativeFunction<
JFloatMarker Function(
JClassPtr, JMethodIDPtr, ffi.Pointer<JValue>)>>
CallStaticFloatMethodA;
external ffi.Pointer<
ffi.NativeFunction<JDoubleMarker Function(JClassPtr, JMethodIDPtr)>>
CallStaticDoubleMethod;
external ffi.Pointer<
ffi.NativeFunction<
JDoubleMarker Function(
JClassPtr, JMethodIDPtr, ffi.Pointer<JValue>)>>
CallStaticDoubleMethodA;
external ffi.Pointer<
ffi.NativeFunction<ffi.Void Function(JClassPtr, JMethodIDPtr)>>
CallStaticVoidMethod;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(JClassPtr, JMethodIDPtr, ffi.Pointer<JValue>)>>
CallStaticVoidMethodA;
external ffi.Pointer<
ffi.NativeFunction<
JFieldIDPtr Function(
JClassPtr, ffi.Pointer<ffi.Char>, ffi.Pointer<ffi.Char>)>>
GetStaticFieldID;
external ffi.Pointer<
ffi.NativeFunction<JObjectPtr Function(JClassPtr, JFieldIDPtr)>>
GetStaticObjectField;
external ffi.Pointer<
ffi.NativeFunction<JBooleanMarker Function(JClassPtr, JFieldIDPtr)>>
GetStaticBooleanField;
external ffi.Pointer<
ffi.NativeFunction<JByteMarker Function(JClassPtr, JFieldIDPtr)>>
GetStaticByteField;
external ffi.Pointer<
ffi.NativeFunction<JCharMarker Function(JClassPtr, JFieldIDPtr)>>
GetStaticCharField;
external ffi.Pointer<
ffi.NativeFunction<JShortMarker Function(JClassPtr, JFieldIDPtr)>>
GetStaticShortField;
external ffi.Pointer<
ffi.NativeFunction<JIntMarker Function(JClassPtr, JFieldIDPtr)>>
GetStaticIntField;
external ffi.Pointer<
ffi.NativeFunction<JLongMarker Function(JClassPtr, JFieldIDPtr)>>
GetStaticLongField;
external ffi.Pointer<
ffi.NativeFunction<JFloatMarker Function(JClassPtr, JFieldIDPtr)>>
GetStaticFloatField;
external ffi.Pointer<
ffi.NativeFunction<JDoubleMarker Function(JClassPtr, JFieldIDPtr)>>
GetStaticDoubleField;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(JClassPtr, JFieldIDPtr, JObjectPtr)>>
SetStaticObjectField;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(JClassPtr, JFieldIDPtr, JBooleanMarker)>>
SetStaticBooleanField;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(JClassPtr, JFieldIDPtr, JByteMarker)>>
SetStaticByteField;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(JClassPtr, JFieldIDPtr, JCharMarker)>>
SetStaticCharField;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(JClassPtr, JFieldIDPtr, JShortMarker)>>
SetStaticShortField;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(JClassPtr, JFieldIDPtr, JIntMarker)>>
SetStaticIntField;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(JClassPtr, JFieldIDPtr, JLongMarker)>>
SetStaticLongField;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(JClassPtr, JFieldIDPtr, JFloatMarker)>>
SetStaticFloatField;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(JClassPtr, JFieldIDPtr, JDoubleMarker)>>
SetStaticDoubleField;
external ffi.Pointer<
ffi.NativeFunction<
JStringPtr Function(ffi.Pointer<JCharMarker>, JSizeMarker)>>
NewString;
external ffi.Pointer<ffi.NativeFunction<JSizeMarker Function(JStringPtr)>>
GetStringLength;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Pointer<JCharMarker> Function(
JStringPtr, ffi.Pointer<JBooleanMarker>)>> GetStringChars;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(JStringPtr, ffi.Pointer<JCharMarker>)>>
ReleaseStringChars;
external ffi.Pointer<
ffi.NativeFunction<JStringPtr Function(ffi.Pointer<ffi.Char>)>>
NewStringUTF;
external ffi.Pointer<ffi.NativeFunction<JSizeMarker Function(JStringPtr)>>
GetStringUTFLength;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Pointer<ffi.Char> Function(
JStringPtr, ffi.Pointer<JBooleanMarker>)>> GetStringUTFChars;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(JStringPtr, ffi.Pointer<ffi.Char>)>>
ReleaseStringUTFChars;
external ffi.Pointer<ffi.NativeFunction<JSizeMarker Function(JArrayPtr)>>
GetArrayLength;
external ffi.Pointer<
ffi.NativeFunction<
JObjectArrayPtr Function(JSizeMarker, JClassPtr, JObjectPtr)>>
NewObjectArray;
external ffi.Pointer<
ffi.NativeFunction<JObjectPtr Function(JObjectArrayPtr, JSizeMarker)>>
GetObjectArrayElement;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(JObjectArrayPtr, JSizeMarker, JObjectPtr)>>
SetObjectArrayElement;
external ffi
.Pointer<ffi.NativeFunction<JBooleanArrayPtr Function(JSizeMarker)>>
NewBooleanArray;
external ffi.Pointer<ffi.NativeFunction<JByteArrayPtr Function(JSizeMarker)>>
NewByteArray;
external ffi.Pointer<ffi.NativeFunction<JCharArrayPtr Function(JSizeMarker)>>
NewCharArray;
external ffi.Pointer<ffi.NativeFunction<JShortArrayPtr Function(JSizeMarker)>>
NewShortArray;
external ffi.Pointer<ffi.NativeFunction<JIntArrayPtr Function(JSizeMarker)>>
NewIntArray;
external ffi.Pointer<ffi.NativeFunction<JLongArrayPtr Function(JSizeMarker)>>
NewLongArray;
external ffi.Pointer<ffi.NativeFunction<JFloatArrayPtr Function(JSizeMarker)>>
NewFloatArray;
external ffi
.Pointer<ffi.NativeFunction<JDoubleArrayPtr Function(JSizeMarker)>>
NewDoubleArray;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Pointer<JBooleanMarker> Function(
JBooleanArrayPtr, ffi.Pointer<JBooleanMarker>)>>
GetBooleanArrayElements;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Pointer<JByteMarker> Function(
JByteArrayPtr, ffi.Pointer<JBooleanMarker>)>>
GetByteArrayElements;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Pointer<JCharMarker> Function(
JCharArrayPtr, ffi.Pointer<JBooleanMarker>)>>
GetCharArrayElements;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Pointer<JShortMarker> Function(
JShortArrayPtr, ffi.Pointer<JBooleanMarker>)>>
GetShortArrayElements;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Pointer<JIntMarker> Function(
JIntArrayPtr, ffi.Pointer<JBooleanMarker>)>> GetIntArrayElements;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Pointer<JLongMarker> Function(
JLongArrayPtr, ffi.Pointer<JBooleanMarker>)>>
GetLongArrayElements;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Pointer<JFloatMarker> Function(
JFloatArrayPtr, ffi.Pointer<JBooleanMarker>)>>
GetFloatArrayElements;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Pointer<JDoubleMarker> Function(
JDoubleArrayPtr, ffi.Pointer<JBooleanMarker>)>>
GetDoubleArrayElements;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(
JBooleanArrayPtr, ffi.Pointer<JBooleanMarker>, JIntMarker)>>
ReleaseBooleanArrayElements;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(
JByteArrayPtr, ffi.Pointer<JByteMarker>, JIntMarker)>>
ReleaseByteArrayElements;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(
JCharArrayPtr, ffi.Pointer<JCharMarker>, JIntMarker)>>
ReleaseCharArrayElements;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(
JShortArrayPtr, ffi.Pointer<JShortMarker>, JIntMarker)>>
ReleaseShortArrayElements;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(
JIntArrayPtr, ffi.Pointer<JIntMarker>, JIntMarker)>>
ReleaseIntArrayElements;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(
JLongArrayPtr, ffi.Pointer<JLongMarker>, JIntMarker)>>
ReleaseLongArrayElements;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(
JFloatArrayPtr, ffi.Pointer<JFloatMarker>, JIntMarker)>>
ReleaseFloatArrayElements;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(
JDoubleArrayPtr, ffi.Pointer<JDoubleMarker>, JIntMarker)>>
ReleaseDoubleArrayElements;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(JBooleanArrayPtr, JSizeMarker, JSizeMarker,
ffi.Pointer<JBooleanMarker>)>> GetBooleanArrayRegion;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(JByteArrayPtr, JSizeMarker, JSizeMarker,
ffi.Pointer<JByteMarker>)>> GetByteArrayRegion;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(JCharArrayPtr, JSizeMarker, JSizeMarker,
ffi.Pointer<JCharMarker>)>> GetCharArrayRegion;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(JShortArrayPtr, JSizeMarker, JSizeMarker,
ffi.Pointer<JShortMarker>)>> GetShortArrayRegion;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(JIntArrayPtr, JSizeMarker, JSizeMarker,
ffi.Pointer<JIntMarker>)>> GetIntArrayRegion;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(JLongArrayPtr, JSizeMarker, JSizeMarker,
ffi.Pointer<JLongMarker>)>> GetLongArrayRegion;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(JFloatArrayPtr, JSizeMarker, JSizeMarker,
ffi.Pointer<JFloatMarker>)>> GetFloatArrayRegion;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(JDoubleArrayPtr, JSizeMarker, JSizeMarker,
ffi.Pointer<JDoubleMarker>)>> GetDoubleArrayRegion;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(JBooleanArrayPtr, JSizeMarker, JSizeMarker,
ffi.Pointer<JBooleanMarker>)>> SetBooleanArrayRegion;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(JByteArrayPtr, JSizeMarker, JSizeMarker,
ffi.Pointer<JByteMarker>)>> SetByteArrayRegion;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(JCharArrayPtr, JSizeMarker, JSizeMarker,
ffi.Pointer<JCharMarker>)>> SetCharArrayRegion;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(JShortArrayPtr, JSizeMarker, JSizeMarker,
ffi.Pointer<JShortMarker>)>> SetShortArrayRegion;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(JIntArrayPtr, JSizeMarker, JSizeMarker,
ffi.Pointer<JIntMarker>)>> SetIntArrayRegion;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(JLongArrayPtr, JSizeMarker, JSizeMarker,
ffi.Pointer<JLongMarker>)>> SetLongArrayRegion;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(JFloatArrayPtr, JSizeMarker, JSizeMarker,
ffi.Pointer<JFloatMarker>)>> SetFloatArrayRegion;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(JDoubleArrayPtr, JSizeMarker, JSizeMarker,
ffi.Pointer<JDoubleMarker>)>> SetDoubleArrayRegion;
external ffi.Pointer<
ffi.NativeFunction<
JIntMarker Function(
JClassPtr, ffi.Pointer<JNINativeMethod>, JIntMarker)>>
RegisterNatives;
external ffi.Pointer<ffi.NativeFunction<JIntMarker Function(JClassPtr)>>
UnregisterNatives;
external ffi.Pointer<ffi.NativeFunction<JIntMarker Function(JObjectPtr)>>
MonitorEnter;
external ffi.Pointer<ffi.NativeFunction<JIntMarker Function(JObjectPtr)>>
MonitorExit;
external ffi.Pointer<
ffi.NativeFunction<
JIntMarker Function(ffi.Pointer<ffi.Pointer<JavaVM>>)>> GetJavaVM;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(JStringPtr, JSizeMarker, JSizeMarker,
ffi.Pointer<JCharMarker>)>> GetStringRegion;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(
JStringPtr, JSizeMarker, JSizeMarker, ffi.Pointer<ffi.Char>)>>
GetStringUTFRegion;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Pointer<ffi.Void> Function(
JArrayPtr, ffi.Pointer<JBooleanMarker>)>>
GetPrimitiveArrayCritical;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(JArrayPtr, ffi.Pointer<ffi.Void>, JIntMarker)>>
ReleasePrimitiveArrayCritical;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Pointer<JCharMarker> Function(
JStringPtr, ffi.Pointer<JBooleanMarker>)>> GetStringCritical;
external ffi.Pointer<
ffi.NativeFunction<
ffi.Void Function(JStringPtr, ffi.Pointer<JCharMarker>)>>
ReleaseStringCritical;
external ffi.Pointer<ffi.NativeFunction<JWeakPtr Function(JObjectPtr)>>
NewWeakGlobalRef;
external ffi.Pointer<ffi.NativeFunction<ffi.Void Function(JWeakPtr)>>
DeleteWeakGlobalRef;
external ffi.Pointer<ffi.NativeFunction<JBooleanMarker Function()>>
ExceptionCheck;
external ffi.Pointer<
ffi.NativeFunction<
JObjectPtr Function(ffi.Pointer<ffi.Void>, JLongMarker)>>
NewDirectByteBuffer;
external ffi.Pointer<
ffi.NativeFunction<ffi.Pointer<ffi.Void> Function(JObjectPtr)>>
GetDirectBufferAddress;
external ffi.Pointer<ffi.NativeFunction<JLongMarker Function(JObjectPtr)>>
GetDirectBufferCapacity;
external ffi.Pointer<ffi.NativeFunction<ffi.Int32 Function(JObjectPtr)>>
GetObjectRefType;
}
extension GlobalJniEnvExtension on ffi.Pointer<GlobalJniEnv> {
int GetVersion() {
return ref.GetVersion.asFunction<int Function()>()();
}
JClassPtr DefineClass(ffi.Pointer<ffi.Char> name, JObjectPtr loader,
ffi.Pointer<JByteMarker> buf, int bufLen) {
return ref.DefineClass.asFunction<
JClassPtr Function(ffi.Pointer<ffi.Char>, JObjectPtr,
ffi.Pointer<JByteMarker>, int)>()(name, loader, buf, bufLen);
}
JClassPtr FindClass(ffi.Pointer<ffi.Char> name) {
return ref.FindClass.asFunction<
JClassPtr Function(ffi.Pointer<ffi.Char>)>()(name);
}
JMethodIDPtr FromReflectedMethod(JObjectPtr method) {
return ref.FromReflectedMethod.asFunction<
JMethodIDPtr Function(JObjectPtr)>()(method);
}
JFieldIDPtr FromReflectedField(JObjectPtr field) {
return ref.FromReflectedField.asFunction<
JFieldIDPtr Function(JObjectPtr)>()(field);
}
JObjectPtr ToReflectedMethod(
JClassPtr cls, JMethodIDPtr methodId, int isStatic) {
return ref.ToReflectedMethod.asFunction<
JObjectPtr Function(
JClassPtr, JMethodIDPtr, int)>()(cls, methodId, isStatic);
}
JClassPtr GetSuperclass(JClassPtr clazz) {
return ref.GetSuperclass.asFunction<JClassPtr Function(JClassPtr)>()(clazz);
}
int IsAssignableFrom(JClassPtr clazz1, JClassPtr clazz2) {
return ref.IsAssignableFrom.asFunction<
int Function(JClassPtr, JClassPtr)>()(clazz1, clazz2);
}
JObjectPtr ToReflectedField(
JClassPtr cls, JFieldIDPtr fieldID, int isStatic) {
return ref.ToReflectedField.asFunction<
JObjectPtr Function(
JClassPtr, JFieldIDPtr, int)>()(cls, fieldID, isStatic);
}
int Throw(JThrowablePtr obj) {
return ref.Throw.asFunction<int Function(JThrowablePtr)>()(obj);
}
int ThrowNew(JClassPtr clazz, ffi.Pointer<ffi.Char> message) {
return ref.ThrowNew.asFunction<
int Function(JClassPtr, ffi.Pointer<ffi.Char>)>()(clazz, message);
}
JThrowablePtr ExceptionOccurred() {
return ref.ExceptionOccurred.asFunction<JThrowablePtr Function()>()();
}
void ExceptionDescribe() {
return ref.ExceptionDescribe.asFunction<void Function()>()();
}
void ExceptionClear() {
return ref.ExceptionClear.asFunction<void Function()>()();
}
void FatalError(ffi.Pointer<ffi.Char> msg) {
return ref.FatalError.asFunction<void Function(ffi.Pointer<ffi.Char>)>()(
msg);
}
int PushLocalFrame(int capacity) {
return ref.PushLocalFrame.asFunction<int Function(int)>()(capacity);
}
JObjectPtr PopLocalFrame(JObjectPtr result) {
return ref.PopLocalFrame.asFunction<JObjectPtr Function(JObjectPtr)>()(
result);
}
JObjectPtr NewGlobalRef(JObjectPtr obj) {
return ref.NewGlobalRef.asFunction<JObjectPtr Function(JObjectPtr)>()(obj);
}
void DeleteGlobalRef(JObjectPtr globalRef) {
return ref.DeleteGlobalRef.asFunction<void Function(JObjectPtr)>()(
globalRef);
}
int IsSameObject(JObjectPtr ref1, JObjectPtr ref2) {
return ref.IsSameObject.asFunction<int Function(JObjectPtr, JObjectPtr)>()(
ref1, ref2);
}
int EnsureLocalCapacity(int capacity) {
return ref.EnsureLocalCapacity.asFunction<int Function(int)>()(capacity);
}
JObjectPtr AllocObject(JClassPtr clazz) {
return ref.AllocObject.asFunction<JObjectPtr Function(JClassPtr)>()(clazz);
}
JObjectPtr NewObject(JClassPtr arg1, JMethodIDPtr arg2) {
return ref.NewObject.asFunction<
JObjectPtr Function(JClassPtr, JMethodIDPtr)>()(arg1, arg2);
}
JObjectPtr NewObjectA(
JClassPtr clazz, JMethodIDPtr methodID, ffi.Pointer<JValue> args) {
return ref.NewObjectA.asFunction<
JObjectPtr Function(JClassPtr, JMethodIDPtr,
ffi.Pointer<JValue>)>()(clazz, methodID, args);
}
JClassPtr GetObjectClass(JObjectPtr obj) {
return ref.GetObjectClass.asFunction<JClassPtr Function(JObjectPtr)>()(obj);
}
int IsInstanceOf(JObjectPtr obj, JClassPtr clazz) {
return ref.IsInstanceOf.asFunction<int Function(JObjectPtr, JClassPtr)>()(
obj, clazz);
}
JMethodIDPtr GetMethodID(
JClassPtr clazz, ffi.Pointer<ffi.Char> name, ffi.Pointer<ffi.Char> sig) {
return ref.GetMethodID.asFunction<
JMethodIDPtr Function(JClassPtr, ffi.Pointer<ffi.Char>,
ffi.Pointer<ffi.Char>)>()(clazz, name, sig);
}
JObjectPtr CallObjectMethod(JObjectPtr arg1, JMethodIDPtr arg2) {
return ref.CallObjectMethod.asFunction<
JObjectPtr Function(JObjectPtr, JMethodIDPtr)>()(arg1, arg2);
}
JObjectPtr CallObjectMethodA(
JObjectPtr obj, JMethodIDPtr methodID, ffi.Pointer<JValue> args) {
return ref.CallObjectMethodA.asFunction<
JObjectPtr Function(JObjectPtr, JMethodIDPtr,
ffi.Pointer<JValue>)>()(obj, methodID, args);
}
int CallBooleanMethod(JObjectPtr arg1, JMethodIDPtr arg2) {
return ref.CallBooleanMethod.asFunction<
int Function(JObjectPtr, JMethodIDPtr)>()(arg1, arg2);
}
int CallBooleanMethodA(
JObjectPtr obj, JMethodIDPtr methodId, ffi.Pointer<JValue> args) {
return ref.CallBooleanMethodA.asFunction<
int Function(JObjectPtr, JMethodIDPtr, ffi.Pointer<JValue>)>()(
obj, methodId, args);
}
int CallByteMethod(JObjectPtr arg1, JMethodIDPtr arg2) {
return ref.CallByteMethod.asFunction<
int Function(JObjectPtr, JMethodIDPtr)>()(arg1, arg2);
}
int CallByteMethodA(
JObjectPtr obj, JMethodIDPtr methodID, ffi.Pointer<JValue> args) {
return ref.CallByteMethodA.asFunction<
int Function(JObjectPtr, JMethodIDPtr, ffi.Pointer<JValue>)>()(
obj, methodID, args);
}
int CallCharMethod(JObjectPtr arg1, JMethodIDPtr arg2) {
return ref.CallCharMethod.asFunction<
int Function(JObjectPtr, JMethodIDPtr)>()(arg1, arg2);
}
int CallCharMethodA(
JObjectPtr obj, JMethodIDPtr methodID, ffi.Pointer<JValue> args) {
return ref.CallCharMethodA.asFunction<
int Function(JObjectPtr, JMethodIDPtr, ffi.Pointer<JValue>)>()(
obj, methodID, args);
}
int CallShortMethod(JObjectPtr arg1, JMethodIDPtr arg2) {
return ref.CallShortMethod.asFunction<
int Function(JObjectPtr, JMethodIDPtr)>()(arg1, arg2);
}
int CallShortMethodA(
JObjectPtr obj, JMethodIDPtr methodID, ffi.Pointer<JValue> args) {
return ref.CallShortMethodA.asFunction<
int Function(JObjectPtr, JMethodIDPtr, ffi.Pointer<JValue>)>()(
obj, methodID, args);
}
int CallIntMethod(JObjectPtr arg1, JMethodIDPtr arg2) {
return ref.CallIntMethod.asFunction<
int Function(JObjectPtr, JMethodIDPtr)>()(arg1, arg2);
}
int CallIntMethodA(
JObjectPtr obj, JMethodIDPtr methodID, ffi.Pointer<JValue> args) {
return ref.CallIntMethodA.asFunction<
int Function(JObjectPtr, JMethodIDPtr, ffi.Pointer<JValue>)>()(
obj, methodID, args);
}
int CallLongMethod(JObjectPtr arg1, JMethodIDPtr arg2) {
return ref.CallLongMethod.asFunction<
int Function(JObjectPtr, JMethodIDPtr)>()(arg1, arg2);
}
int CallLongMethodA(
JObjectPtr obj, JMethodIDPtr methodID, ffi.Pointer<JValue> args) {
return ref.CallLongMethodA.asFunction<
int Function(JObjectPtr, JMethodIDPtr, ffi.Pointer<JValue>)>()(
obj, methodID, args);
}
double CallFloatMethod(JObjectPtr arg1, JMethodIDPtr arg2) {
return ref.CallFloatMethod.asFunction<
double Function(JObjectPtr, JMethodIDPtr)>()(arg1, arg2);
}
double CallFloatMethodA(
JObjectPtr obj, JMethodIDPtr methodID, ffi.Pointer<JValue> args) {
return ref.CallFloatMethodA.asFunction<
double Function(JObjectPtr, JMethodIDPtr, ffi.Pointer<JValue>)>()(
obj, methodID, args);
}
double CallDoubleMethod(JObjectPtr arg1, JMethodIDPtr arg2) {
return ref.CallDoubleMethod.asFunction<
double Function(JObjectPtr, JMethodIDPtr)>()(arg1, arg2);
}
double CallDoubleMethodA(
JObjectPtr obj, JMethodIDPtr methodID, ffi.Pointer<JValue> args) {
return ref.CallDoubleMethodA.asFunction<
double Function(JObjectPtr, JMethodIDPtr, ffi.Pointer<JValue>)>()(
obj, methodID, args);
}
void CallVoidMethod(JObjectPtr arg1, JMethodIDPtr arg2) {
return ref.CallVoidMethod.asFunction<
void Function(JObjectPtr, JMethodIDPtr)>()(arg1, arg2);
}
void CallVoidMethodA(
JObjectPtr obj, JMethodIDPtr methodID, ffi.Pointer<JValue> args) {
return ref.CallVoidMethodA.asFunction<
void Function(JObjectPtr, JMethodIDPtr, ffi.Pointer<JValue>)>()(
obj, methodID, args);
}
JObjectPtr CallNonvirtualObjectMethod(
JObjectPtr arg1, JClassPtr arg2, JMethodIDPtr arg3) {
return ref.CallNonvirtualObjectMethod.asFunction<
JObjectPtr Function(
JObjectPtr, JClassPtr, JMethodIDPtr)>()(arg1, arg2, arg3);
}
JObjectPtr CallNonvirtualObjectMethodA(JObjectPtr obj, JClassPtr clazz,
JMethodIDPtr methodID, ffi.Pointer<JValue> args) {
return ref.CallNonvirtualObjectMethodA.asFunction<
JObjectPtr Function(JObjectPtr, JClassPtr, JMethodIDPtr,
ffi.Pointer<JValue>)>()(obj, clazz, methodID, args);
}
int CallNonvirtualBooleanMethod(
JObjectPtr arg1, JClassPtr arg2, JMethodIDPtr arg3) {
return ref.CallNonvirtualBooleanMethod.asFunction<
int Function(JObjectPtr, JClassPtr, JMethodIDPtr)>()(arg1, arg2, arg3);
}
int CallNonvirtualBooleanMethodA(JObjectPtr obj, JClassPtr clazz,
JMethodIDPtr methodID, ffi.Pointer<JValue> args) {
return ref.CallNonvirtualBooleanMethodA.asFunction<
int Function(JObjectPtr, JClassPtr, JMethodIDPtr,
ffi.Pointer<JValue>)>()(obj, clazz, methodID, args);
}
int CallNonvirtualByteMethod(
JObjectPtr arg1, JClassPtr arg2, JMethodIDPtr arg3) {
return ref.CallNonvirtualByteMethod.asFunction<
int Function(JObjectPtr, JClassPtr, JMethodIDPtr)>()(arg1, arg2, arg3);
}
int CallNonvirtualByteMethodA(JObjectPtr obj, JClassPtr clazz,
JMethodIDPtr methodID, ffi.Pointer<JValue> args) {
return ref.CallNonvirtualByteMethodA.asFunction<
int Function(JObjectPtr, JClassPtr, JMethodIDPtr,
ffi.Pointer<JValue>)>()(obj, clazz, methodID, args);
}
int CallNonvirtualCharMethod(
JObjectPtr arg1, JClassPtr arg2, JMethodIDPtr arg3) {
return ref.CallNonvirtualCharMethod.asFunction<
int Function(JObjectPtr, JClassPtr, JMethodIDPtr)>()(arg1, arg2, arg3);
}
int CallNonvirtualCharMethodA(JObjectPtr obj, JClassPtr clazz,
JMethodIDPtr methodID, ffi.Pointer<JValue> args) {
return ref.CallNonvirtualCharMethodA.asFunction<
int Function(JObjectPtr, JClassPtr, JMethodIDPtr,
ffi.Pointer<JValue>)>()(obj, clazz, methodID, args);
}
int CallNonvirtualShortMethod(
JObjectPtr arg1, JClassPtr arg2, JMethodIDPtr arg3) {
return ref.CallNonvirtualShortMethod.asFunction<
int Function(JObjectPtr, JClassPtr, JMethodIDPtr)>()(arg1, arg2, arg3);
}
int CallNonvirtualShortMethodA(JObjectPtr obj, JClassPtr clazz,
JMethodIDPtr methodID, ffi.Pointer<JValue> args) {
return ref.CallNonvirtualShortMethodA.asFunction<
int Function(JObjectPtr, JClassPtr, JMethodIDPtr,
ffi.Pointer<JValue>)>()(obj, clazz, methodID, args);
}
int CallNonvirtualIntMethod(
JObjectPtr arg1, JClassPtr arg2, JMethodIDPtr arg3) {
return ref.CallNonvirtualIntMethod.asFunction<
int Function(JObjectPtr, JClassPtr, JMethodIDPtr)>()(arg1, arg2, arg3);
}
int CallNonvirtualIntMethodA(JObjectPtr obj, JClassPtr clazz,
JMethodIDPtr methodID, ffi.Pointer<JValue> args) {
return ref.CallNonvirtualIntMethodA.asFunction<
int Function(JObjectPtr, JClassPtr, JMethodIDPtr,
ffi.Pointer<JValue>)>()(obj, clazz, methodID, args);
}
int CallNonvirtualLongMethod(
JObjectPtr arg1, JClassPtr arg2, JMethodIDPtr arg3) {
return ref.CallNonvirtualLongMethod.asFunction<
int Function(JObjectPtr, JClassPtr, JMethodIDPtr)>()(arg1, arg2, arg3);
}
int CallNonvirtualLongMethodA(JObjectPtr obj, JClassPtr clazz,
JMethodIDPtr methodID, ffi.Pointer<JValue> args) {
return ref.CallNonvirtualLongMethodA.asFunction<
int Function(JObjectPtr, JClassPtr, JMethodIDPtr,
ffi.Pointer<JValue>)>()(obj, clazz, methodID, args);
}
double CallNonvirtualFloatMethod(
JObjectPtr arg1, JClassPtr arg2, JMethodIDPtr arg3) {
return ref.CallNonvirtualFloatMethod.asFunction<
double Function(
JObjectPtr, JClassPtr, JMethodIDPtr)>()(arg1, arg2, arg3);
}
double CallNonvirtualFloatMethodA(JObjectPtr obj, JClassPtr clazz,
JMethodIDPtr methodID, ffi.Pointer<JValue> args) {
return ref.CallNonvirtualFloatMethodA.asFunction<
double Function(JObjectPtr, JClassPtr, JMethodIDPtr,
ffi.Pointer<JValue>)>()(obj, clazz, methodID, args);
}
double CallNonvirtualDoubleMethod(
JObjectPtr arg1, JClassPtr arg2, JMethodIDPtr arg3) {
return ref.CallNonvirtualDoubleMethod.asFunction<
double Function(
JObjectPtr, JClassPtr, JMethodIDPtr)>()(arg1, arg2, arg3);
}
double CallNonvirtualDoubleMethodA(JObjectPtr obj, JClassPtr clazz,
JMethodIDPtr methodID, ffi.Pointer<JValue> args) {
return ref.CallNonvirtualDoubleMethodA.asFunction<
double Function(JObjectPtr, JClassPtr, JMethodIDPtr,
ffi.Pointer<JValue>)>()(obj, clazz, methodID, args);
}
void CallNonvirtualVoidMethod(
JObjectPtr arg1, JClassPtr arg2, JMethodIDPtr arg3) {
return ref.CallNonvirtualVoidMethod.asFunction<
void Function(JObjectPtr, JClassPtr, JMethodIDPtr)>()(arg1, arg2, arg3);
}
void CallNonvirtualVoidMethodA(JObjectPtr obj, JClassPtr clazz,
JMethodIDPtr methodID, ffi.Pointer<JValue> args) {
return ref.CallNonvirtualVoidMethodA.asFunction<
void Function(JObjectPtr, JClassPtr, JMethodIDPtr,
ffi.Pointer<JValue>)>()(obj, clazz, methodID, args);
}
JFieldIDPtr GetFieldID(
JClassPtr clazz, ffi.Pointer<ffi.Char> name, ffi.Pointer<ffi.Char> sig) {
return ref.GetFieldID.asFunction<
JFieldIDPtr Function(JClassPtr, ffi.Pointer<ffi.Char>,
ffi.Pointer<ffi.Char>)>()(clazz, name, sig);
}
JObjectPtr GetObjectField(JObjectPtr obj, JFieldIDPtr fieldID) {
return ref.GetObjectField.asFunction<
JObjectPtr Function(JObjectPtr, JFieldIDPtr)>()(obj, fieldID);
}
int GetBooleanField(JObjectPtr obj, JFieldIDPtr fieldID) {
return ref.GetBooleanField.asFunction<
int Function(JObjectPtr, JFieldIDPtr)>()(obj, fieldID);
}
int GetByteField(JObjectPtr obj, JFieldIDPtr fieldID) {
return ref.GetByteField.asFunction<int Function(JObjectPtr, JFieldIDPtr)>()(
obj, fieldID);
}
int GetCharField(JObjectPtr obj, JFieldIDPtr fieldID) {
return ref.GetCharField.asFunction<int Function(JObjectPtr, JFieldIDPtr)>()(
obj, fieldID);
}
int GetShortField(JObjectPtr obj, JFieldIDPtr fieldID) {
return ref.GetShortField.asFunction<
int Function(JObjectPtr, JFieldIDPtr)>()(obj, fieldID);
}
int GetIntField(JObjectPtr obj, JFieldIDPtr fieldID) {
return ref.GetIntField.asFunction<int Function(JObjectPtr, JFieldIDPtr)>()(
obj, fieldID);
}
int GetLongField(JObjectPtr obj, JFieldIDPtr fieldID) {
return ref.GetLongField.asFunction<int Function(JObjectPtr, JFieldIDPtr)>()(
obj, fieldID);
}
double GetFloatField(JObjectPtr obj, JFieldIDPtr fieldID) {
return ref.GetFloatField.asFunction<
double Function(JObjectPtr, JFieldIDPtr)>()(obj, fieldID);
}
double GetDoubleField(JObjectPtr obj, JFieldIDPtr fieldID) {
return ref.GetDoubleField.asFunction<
double Function(JObjectPtr, JFieldIDPtr)>()(obj, fieldID);
}
void SetObjectField(JObjectPtr obj, JFieldIDPtr fieldID, JObjectPtr val) {
return ref.SetObjectField.asFunction<
void Function(
JObjectPtr, JFieldIDPtr, JObjectPtr)>()(obj, fieldID, val);
}
void SetBooleanField(JObjectPtr obj, JFieldIDPtr fieldID, int val) {
return ref.SetBooleanField.asFunction<
void Function(JObjectPtr, JFieldIDPtr, int)>()(obj, fieldID, val);
}
void SetByteField(JObjectPtr obj, JFieldIDPtr fieldID, int val) {
return ref.SetByteField.asFunction<
void Function(JObjectPtr, JFieldIDPtr, int)>()(obj, fieldID, val);
}
void SetCharField(JObjectPtr obj, JFieldIDPtr fieldID, int val) {
return ref.SetCharField.asFunction<
void Function(JObjectPtr, JFieldIDPtr, int)>()(obj, fieldID, val);
}
void SetShortField(JObjectPtr obj, JFieldIDPtr fieldID, int val) {
return ref.SetShortField.asFunction<
void Function(JObjectPtr, JFieldIDPtr, int)>()(obj, fieldID, val);
}
void SetIntField(JObjectPtr obj, JFieldIDPtr fieldID, int val) {
return ref.SetIntField.asFunction<
void Function(JObjectPtr, JFieldIDPtr, int)>()(obj, fieldID, val);
}
void SetLongField(JObjectPtr obj, JFieldIDPtr fieldID, int val) {
return ref.SetLongField.asFunction<
void Function(JObjectPtr, JFieldIDPtr, int)>()(obj, fieldID, val);
}
void SetFloatField(JObjectPtr obj, JFieldIDPtr fieldID, double val) {
return ref.SetFloatField.asFunction<
void Function(JObjectPtr, JFieldIDPtr, double)>()(obj, fieldID, val);
}
void SetDoubleField(JObjectPtr obj, JFieldIDPtr fieldID, double val) {
return ref.SetDoubleField.asFunction<
void Function(JObjectPtr, JFieldIDPtr, double)>()(obj, fieldID, val);
}
JMethodIDPtr GetStaticMethodID(
JClassPtr clazz, ffi.Pointer<ffi.Char> name, ffi.Pointer<ffi.Char> sig) {
return ref.GetStaticMethodID.asFunction<
JMethodIDPtr Function(JClassPtr, ffi.Pointer<ffi.Char>,
ffi.Pointer<ffi.Char>)>()(clazz, name, sig);
}
JObjectPtr CallStaticObjectMethod(JClassPtr arg1, JMethodIDPtr arg2) {
return ref.CallStaticObjectMethod.asFunction<
JObjectPtr Function(JClassPtr, JMethodIDPtr)>()(arg1, arg2);
}
JObjectPtr CallStaticObjectMethodA(
JClassPtr clazz, JMethodIDPtr methodID, ffi.Pointer<JValue> args) {
return ref.CallStaticObjectMethodA.asFunction<
JObjectPtr Function(JClassPtr, JMethodIDPtr,
ffi.Pointer<JValue>)>()(clazz, methodID, args);
}
int CallStaticBooleanMethod(JClassPtr arg1, JMethodIDPtr arg2) {
return ref.CallStaticBooleanMethod.asFunction<
int Function(JClassPtr, JMethodIDPtr)>()(arg1, arg2);
}
int CallStaticBooleanMethodA(
JClassPtr clazz, JMethodIDPtr methodID, ffi.Pointer<JValue> args) {
return ref.CallStaticBooleanMethodA.asFunction<
int Function(JClassPtr, JMethodIDPtr, ffi.Pointer<JValue>)>()(
clazz, methodID, args);
}
int CallStaticByteMethod(JClassPtr arg1, JMethodIDPtr arg2) {
return ref.CallStaticByteMethod.asFunction<
int Function(JClassPtr, JMethodIDPtr)>()(arg1, arg2);
}
int CallStaticByteMethodA(
JClassPtr clazz, JMethodIDPtr methodID, ffi.Pointer<JValue> args) {
return ref.CallStaticByteMethodA.asFunction<
int Function(JClassPtr, JMethodIDPtr, ffi.Pointer<JValue>)>()(
clazz, methodID, args);
}
int CallStaticCharMethod(JClassPtr arg1, JMethodIDPtr arg2) {
return ref.CallStaticCharMethod.asFunction<
int Function(JClassPtr, JMethodIDPtr)>()(arg1, arg2);
}
int CallStaticCharMethodA(
JClassPtr clazz, JMethodIDPtr methodID, ffi.Pointer<JValue> args) {
return ref.CallStaticCharMethodA.asFunction<
int Function(JClassPtr, JMethodIDPtr, ffi.Pointer<JValue>)>()(
clazz, methodID, args);
}
int CallStaticShortMethod(JClassPtr arg1, JMethodIDPtr arg2) {
return ref.CallStaticShortMethod.asFunction<
int Function(JClassPtr, JMethodIDPtr)>()(arg1, arg2);
}
int CallStaticShortMethodA(
JClassPtr clazz, JMethodIDPtr methodID, ffi.Pointer<JValue> args) {
return ref.CallStaticShortMethodA.asFunction<
int Function(JClassPtr, JMethodIDPtr, ffi.Pointer<JValue>)>()(
clazz, methodID, args);
}
int CallStaticIntMethod(JClassPtr arg1, JMethodIDPtr arg2) {
return ref.CallStaticIntMethod.asFunction<
int Function(JClassPtr, JMethodIDPtr)>()(arg1, arg2);
}
int CallStaticIntMethodA(
JClassPtr clazz, JMethodIDPtr methodID, ffi.Pointer<JValue> args) {
return ref.CallStaticIntMethodA.asFunction<
int Function(JClassPtr, JMethodIDPtr, ffi.Pointer<JValue>)>()(
clazz, methodID, args);
}
int CallStaticLongMethod(JClassPtr arg1, JMethodIDPtr arg2) {
return ref.CallStaticLongMethod.asFunction<
int Function(JClassPtr, JMethodIDPtr)>()(arg1, arg2);
}
int CallStaticLongMethodA(
JClassPtr clazz, JMethodIDPtr methodID, ffi.Pointer<JValue> args) {
return ref.CallStaticLongMethodA.asFunction<
int Function(JClassPtr, JMethodIDPtr, ffi.Pointer<JValue>)>()(
clazz, methodID, args);
}
double CallStaticFloatMethod(JClassPtr arg1, JMethodIDPtr arg2) {
return ref.CallStaticFloatMethod.asFunction<
double Function(JClassPtr, JMethodIDPtr)>()(arg1, arg2);
}
double CallStaticFloatMethodA(
JClassPtr clazz, JMethodIDPtr methodID, ffi.Pointer<JValue> args) {
return ref.CallStaticFloatMethodA.asFunction<
double Function(JClassPtr, JMethodIDPtr, ffi.Pointer<JValue>)>()(
clazz, methodID, args);
}
double CallStaticDoubleMethod(JClassPtr arg1, JMethodIDPtr arg2) {
return ref.CallStaticDoubleMethod.asFunction<
double Function(JClassPtr, JMethodIDPtr)>()(arg1, arg2);
}
double CallStaticDoubleMethodA(
JClassPtr clazz, JMethodIDPtr methodID, ffi.Pointer<JValue> args) {
return ref.CallStaticDoubleMethodA.asFunction<
double Function(JClassPtr, JMethodIDPtr, ffi.Pointer<JValue>)>()(
clazz, methodID, args);
}
void CallStaticVoidMethod(JClassPtr arg1, JMethodIDPtr arg2) {
return ref.CallStaticVoidMethod.asFunction<
void Function(JClassPtr, JMethodIDPtr)>()(arg1, arg2);
}
void CallStaticVoidMethodA(
JClassPtr clazz, JMethodIDPtr methodID, ffi.Pointer<JValue> args) {
return ref.CallStaticVoidMethodA.asFunction<
void Function(JClassPtr, JMethodIDPtr, ffi.Pointer<JValue>)>()(
clazz, methodID, args);
}
JFieldIDPtr GetStaticFieldID(
JClassPtr clazz, ffi.Pointer<ffi.Char> name, ffi.Pointer<ffi.Char> sig) {
return ref.GetStaticFieldID.asFunction<
JFieldIDPtr Function(JClassPtr, ffi.Pointer<ffi.Char>,
ffi.Pointer<ffi.Char>)>()(clazz, name, sig);
}
JObjectPtr GetStaticObjectField(JClassPtr clazz, JFieldIDPtr fieldID) {
return ref.GetStaticObjectField.asFunction<
JObjectPtr Function(JClassPtr, JFieldIDPtr)>()(clazz, fieldID);
}
int GetStaticBooleanField(JClassPtr clazz, JFieldIDPtr fieldID) {
return ref.GetStaticBooleanField.asFunction<
int Function(JClassPtr, JFieldIDPtr)>()(clazz, fieldID);
}
int GetStaticByteField(JClassPtr clazz, JFieldIDPtr fieldID) {
return ref.GetStaticByteField.asFunction<
int Function(JClassPtr, JFieldIDPtr)>()(clazz, fieldID);
}
int GetStaticCharField(JClassPtr clazz, JFieldIDPtr fieldID) {
return ref.GetStaticCharField.asFunction<
int Function(JClassPtr, JFieldIDPtr)>()(clazz, fieldID);
}
int GetStaticShortField(JClassPtr clazz, JFieldIDPtr fieldID) {
return ref.GetStaticShortField.asFunction<
int Function(JClassPtr, JFieldIDPtr)>()(clazz, fieldID);
}
int GetStaticIntField(JClassPtr clazz, JFieldIDPtr fieldID) {
return ref.GetStaticIntField.asFunction<
int Function(JClassPtr, JFieldIDPtr)>()(clazz, fieldID);
}
int GetStaticLongField(JClassPtr clazz, JFieldIDPtr fieldID) {
return ref.GetStaticLongField.asFunction<
int Function(JClassPtr, JFieldIDPtr)>()(clazz, fieldID);
}
double GetStaticFloatField(JClassPtr clazz, JFieldIDPtr fieldID) {
return ref.GetStaticFloatField.asFunction<
double Function(JClassPtr, JFieldIDPtr)>()(clazz, fieldID);
}
double GetStaticDoubleField(JClassPtr clazz, JFieldIDPtr fieldID) {
return ref.GetStaticDoubleField.asFunction<
double Function(JClassPtr, JFieldIDPtr)>()(clazz, fieldID);
}
void SetStaticObjectField(
JClassPtr clazz, JFieldIDPtr fieldID, JObjectPtr val) {
return ref.SetStaticObjectField.asFunction<
void Function(
JClassPtr, JFieldIDPtr, JObjectPtr)>()(clazz, fieldID, val);
}
void SetStaticBooleanField(JClassPtr clazz, JFieldIDPtr fieldID, int val) {
return ref.SetStaticBooleanField.asFunction<
void Function(JClassPtr, JFieldIDPtr, int)>()(clazz, fieldID, val);
}
void SetStaticByteField(JClassPtr clazz, JFieldIDPtr fieldID, int val) {
return ref.SetStaticByteField.asFunction<
void Function(JClassPtr, JFieldIDPtr, int)>()(clazz, fieldID, val);
}
void SetStaticCharField(JClassPtr clazz, JFieldIDPtr fieldID, int val) {
return ref.SetStaticCharField.asFunction<
void Function(JClassPtr, JFieldIDPtr, int)>()(clazz, fieldID, val);
}
void SetStaticShortField(JClassPtr clazz, JFieldIDPtr fieldID, int val) {
return ref.SetStaticShortField.asFunction<
void Function(JClassPtr, JFieldIDPtr, int)>()(clazz, fieldID, val);
}
void SetStaticIntField(JClassPtr clazz, JFieldIDPtr fieldID, int val) {
return ref.SetStaticIntField.asFunction<
void Function(JClassPtr, JFieldIDPtr, int)>()(clazz, fieldID, val);
}
void SetStaticLongField(JClassPtr clazz, JFieldIDPtr fieldID, int val) {
return ref.SetStaticLongField.asFunction<
void Function(JClassPtr, JFieldIDPtr, int)>()(clazz, fieldID, val);
}
void SetStaticFloatField(JClassPtr clazz, JFieldIDPtr fieldID, double val) {
return ref.SetStaticFloatField.asFunction<
void Function(JClassPtr, JFieldIDPtr, double)>()(clazz, fieldID, val);
}
void SetStaticDoubleField(JClassPtr clazz, JFieldIDPtr fieldID, double val) {
return ref.SetStaticDoubleField.asFunction<
void Function(JClassPtr, JFieldIDPtr, double)>()(clazz, fieldID, val);
}
JStringPtr NewString(ffi.Pointer<JCharMarker> unicodeChars, int len) {
return ref.NewString.asFunction<
JStringPtr Function(
ffi.Pointer<JCharMarker>, int)>()(unicodeChars, len);
}
int GetStringLength(JStringPtr string) {
return ref.GetStringLength.asFunction<int Function(JStringPtr)>()(string);
}
ffi.Pointer<JCharMarker> GetStringChars(
JStringPtr string, ffi.Pointer<JBooleanMarker> isCopy) {
return ref.GetStringChars.asFunction<
ffi.Pointer<JCharMarker> Function(
JStringPtr, ffi.Pointer<JBooleanMarker>)>()(string, isCopy);
}
void ReleaseStringChars(JStringPtr string, ffi.Pointer<JCharMarker> isCopy) {
return ref.ReleaseStringChars.asFunction<
void Function(JStringPtr, ffi.Pointer<JCharMarker>)>()(string, isCopy);
}
JStringPtr NewStringUTF(ffi.Pointer<ffi.Char> bytes) {
return ref.NewStringUTF.asFunction<
JStringPtr Function(ffi.Pointer<ffi.Char>)>()(bytes);
}
int GetStringUTFLength(JStringPtr string) {
return ref.GetStringUTFLength.asFunction<int Function(JStringPtr)>()(
string);
}
ffi.Pointer<ffi.Char> GetStringUTFChars(
JStringPtr string, ffi.Pointer<JBooleanMarker> isCopy) {
return ref.GetStringUTFChars.asFunction<
ffi.Pointer<ffi.Char> Function(
JStringPtr, ffi.Pointer<JBooleanMarker>)>()(string, isCopy);
}
void ReleaseStringUTFChars(JStringPtr string, ffi.Pointer<ffi.Char> utf) {
return ref.ReleaseStringUTFChars.asFunction<
void Function(JStringPtr, ffi.Pointer<ffi.Char>)>()(string, utf);
}
int GetArrayLength(JArrayPtr array) {
return ref.GetArrayLength.asFunction<int Function(JArrayPtr)>()(array);
}
JObjectArrayPtr NewObjectArray(
int length, JClassPtr elementClass, JObjectPtr initialElement) {
return ref.NewObjectArray.asFunction<
JObjectArrayPtr Function(int, JClassPtr, JObjectPtr)>()(
length, elementClass, initialElement);
}
JObjectPtr GetObjectArrayElement(JObjectArrayPtr array, int index) {
return ref.GetObjectArrayElement.asFunction<
JObjectPtr Function(JObjectArrayPtr, int)>()(array, index);
}
void SetObjectArrayElement(JObjectArrayPtr array, int index, JObjectPtr val) {
return ref.SetObjectArrayElement.asFunction<
void Function(JObjectArrayPtr, int, JObjectPtr)>()(array, index, val);
}
JBooleanArrayPtr NewBooleanArray(int length) {
return ref.NewBooleanArray.asFunction<JBooleanArrayPtr Function(int)>()(
length);
}
JByteArrayPtr NewByteArray(int length) {
return ref.NewByteArray.asFunction<JByteArrayPtr Function(int)>()(length);
}
JCharArrayPtr NewCharArray(int length) {
return ref.NewCharArray.asFunction<JCharArrayPtr Function(int)>()(length);
}
JShortArrayPtr NewShortArray(int length) {
return ref.NewShortArray.asFunction<JShortArrayPtr Function(int)>()(length);
}
JIntArrayPtr NewIntArray(int length) {
return ref.NewIntArray.asFunction<JIntArrayPtr Function(int)>()(length);
}
JLongArrayPtr NewLongArray(int length) {
return ref.NewLongArray.asFunction<JLongArrayPtr Function(int)>()(length);
}
JFloatArrayPtr NewFloatArray(int length) {
return ref.NewFloatArray.asFunction<JFloatArrayPtr Function(int)>()(length);
}
JDoubleArrayPtr NewDoubleArray(int length) {
return ref.NewDoubleArray.asFunction<JDoubleArrayPtr Function(int)>()(
length);
}
ffi.Pointer<JBooleanMarker> GetBooleanArrayElements(
JBooleanArrayPtr array, ffi.Pointer<JBooleanMarker> isCopy) {
return ref.GetBooleanArrayElements.asFunction<
ffi.Pointer<JBooleanMarker> Function(
JBooleanArrayPtr, ffi.Pointer<JBooleanMarker>)>()(array, isCopy);
}
ffi.Pointer<JByteMarker> GetByteArrayElements(
JByteArrayPtr array, ffi.Pointer<JBooleanMarker> isCopy) {
return ref.GetByteArrayElements.asFunction<
ffi.Pointer<JByteMarker> Function(
JByteArrayPtr, ffi.Pointer<JBooleanMarker>)>()(array, isCopy);
}
ffi.Pointer<JCharMarker> GetCharArrayElements(
JCharArrayPtr array, ffi.Pointer<JBooleanMarker> isCopy) {
return ref.GetCharArrayElements.asFunction<
ffi.Pointer<JCharMarker> Function(
JCharArrayPtr, ffi.Pointer<JBooleanMarker>)>()(array, isCopy);
}
ffi.Pointer<JShortMarker> GetShortArrayElements(
JShortArrayPtr array, ffi.Pointer<JBooleanMarker> isCopy) {
return ref.GetShortArrayElements.asFunction<
ffi.Pointer<JShortMarker> Function(
JShortArrayPtr, ffi.Pointer<JBooleanMarker>)>()(array, isCopy);
}
ffi.Pointer<JIntMarker> GetIntArrayElements(
JIntArrayPtr array, ffi.Pointer<JBooleanMarker> isCopy) {
return ref.GetIntArrayElements.asFunction<
ffi.Pointer<JIntMarker> Function(
JIntArrayPtr, ffi.Pointer<JBooleanMarker>)>()(array, isCopy);
}
ffi.Pointer<JLongMarker> GetLongArrayElements(
JLongArrayPtr array, ffi.Pointer<JBooleanMarker> isCopy) {
return ref.GetLongArrayElements.asFunction<
ffi.Pointer<JLongMarker> Function(
JLongArrayPtr, ffi.Pointer<JBooleanMarker>)>()(array, isCopy);
}
ffi.Pointer<JFloatMarker> GetFloatArrayElements(
JFloatArrayPtr array, ffi.Pointer<JBooleanMarker> isCopy) {
return ref.GetFloatArrayElements.asFunction<
ffi.Pointer<JFloatMarker> Function(
JFloatArrayPtr, ffi.Pointer<JBooleanMarker>)>()(array, isCopy);
}
ffi.Pointer<JDoubleMarker> GetDoubleArrayElements(
JDoubleArrayPtr array, ffi.Pointer<JBooleanMarker> isCopy) {
return ref.GetDoubleArrayElements.asFunction<
ffi.Pointer<JDoubleMarker> Function(
JDoubleArrayPtr, ffi.Pointer<JBooleanMarker>)>()(array, isCopy);
}
void ReleaseBooleanArrayElements(
JBooleanArrayPtr array, ffi.Pointer<JBooleanMarker> elems, int mode) {
return ref.ReleaseBooleanArrayElements.asFunction<
void Function(JBooleanArrayPtr, ffi.Pointer<JBooleanMarker>,
int)>()(array, elems, mode);
}
void ReleaseByteArrayElements(
JByteArrayPtr array, ffi.Pointer<JByteMarker> elems, int mode) {
return ref.ReleaseByteArrayElements.asFunction<
void Function(JByteArrayPtr, ffi.Pointer<JByteMarker>, int)>()(
array, elems, mode);
}
void ReleaseCharArrayElements(
JCharArrayPtr array, ffi.Pointer<JCharMarker> elems, int mode) {
return ref.ReleaseCharArrayElements.asFunction<
void Function(JCharArrayPtr, ffi.Pointer<JCharMarker>, int)>()(
array, elems, mode);
}
void ReleaseShortArrayElements(
JShortArrayPtr array, ffi.Pointer<JShortMarker> elems, int mode) {
return ref.ReleaseShortArrayElements.asFunction<
void Function(JShortArrayPtr, ffi.Pointer<JShortMarker>, int)>()(
array, elems, mode);
}
void ReleaseIntArrayElements(
JIntArrayPtr array, ffi.Pointer<JIntMarker> elems, int mode) {
return ref.ReleaseIntArrayElements.asFunction<
void Function(
JIntArrayPtr, ffi.Pointer<JIntMarker>, int)>()(array, elems, mode);
}
void ReleaseLongArrayElements(
JLongArrayPtr array, ffi.Pointer<JLongMarker> elems, int mode) {
return ref.ReleaseLongArrayElements.asFunction<
void Function(JLongArrayPtr, ffi.Pointer<JLongMarker>, int)>()(
array, elems, mode);
}
void ReleaseFloatArrayElements(
JFloatArrayPtr array, ffi.Pointer<JFloatMarker> elems, int mode) {
return ref.ReleaseFloatArrayElements.asFunction<
void Function(JFloatArrayPtr, ffi.Pointer<JFloatMarker>, int)>()(
array, elems, mode);
}
void ReleaseDoubleArrayElements(
JDoubleArrayPtr array, ffi.Pointer<JDoubleMarker> elems, int mode) {
return ref.ReleaseDoubleArrayElements.asFunction<
void Function(JDoubleArrayPtr, ffi.Pointer<JDoubleMarker>, int)>()(
array, elems, mode);
}
void GetBooleanArrayRegion(JBooleanArrayPtr array, int start, int len,
ffi.Pointer<JBooleanMarker> buf) {
return ref.GetBooleanArrayRegion.asFunction<
void Function(JBooleanArrayPtr, int, int,
ffi.Pointer<JBooleanMarker>)>()(array, start, len, buf);
}
void GetByteArrayRegion(
JByteArrayPtr array, int start, int len, ffi.Pointer<JByteMarker> buf) {
return ref.GetByteArrayRegion.asFunction<
void Function(JByteArrayPtr, int, int, ffi.Pointer<JByteMarker>)>()(
array, start, len, buf);
}
void GetCharArrayRegion(
JCharArrayPtr array, int start, int len, ffi.Pointer<JCharMarker> buf) {
return ref.GetCharArrayRegion.asFunction<
void Function(JCharArrayPtr, int, int, ffi.Pointer<JCharMarker>)>()(
array, start, len, buf);
}
void GetShortArrayRegion(
JShortArrayPtr array, int start, int len, ffi.Pointer<JShortMarker> buf) {
return ref.GetShortArrayRegion.asFunction<
void Function(JShortArrayPtr, int, int,
ffi.Pointer<JShortMarker>)>()(array, start, len, buf);
}
void GetIntArrayRegion(
JIntArrayPtr array, int start, int len, ffi.Pointer<JIntMarker> buf) {
return ref.GetIntArrayRegion.asFunction<
void Function(JIntArrayPtr, int, int, ffi.Pointer<JIntMarker>)>()(
array, start, len, buf);
}
void GetLongArrayRegion(
JLongArrayPtr array, int start, int len, ffi.Pointer<JLongMarker> buf) {
return ref.GetLongArrayRegion.asFunction<
void Function(JLongArrayPtr, int, int, ffi.Pointer<JLongMarker>)>()(
array, start, len, buf);
}
void GetFloatArrayRegion(
JFloatArrayPtr array, int start, int len, ffi.Pointer<JFloatMarker> buf) {
return ref.GetFloatArrayRegion.asFunction<
void Function(JFloatArrayPtr, int, int,
ffi.Pointer<JFloatMarker>)>()(array, start, len, buf);
}
void GetDoubleArrayRegion(JDoubleArrayPtr array, int start, int len,
ffi.Pointer<JDoubleMarker> buf) {
return ref.GetDoubleArrayRegion.asFunction<
void Function(JDoubleArrayPtr, int, int,
ffi.Pointer<JDoubleMarker>)>()(array, start, len, buf);
}
void SetBooleanArrayRegion(JBooleanArrayPtr array, int start, int len,
ffi.Pointer<JBooleanMarker> buf) {
return ref.SetBooleanArrayRegion.asFunction<
void Function(JBooleanArrayPtr, int, int,
ffi.Pointer<JBooleanMarker>)>()(array, start, len, buf);
}
void SetByteArrayRegion(
JByteArrayPtr array, int start, int len, ffi.Pointer<JByteMarker> buf) {
return ref.SetByteArrayRegion.asFunction<
void Function(JByteArrayPtr, int, int, ffi.Pointer<JByteMarker>)>()(
array, start, len, buf);
}
void SetCharArrayRegion(
JCharArrayPtr array, int start, int len, ffi.Pointer<JCharMarker> buf) {
return ref.SetCharArrayRegion.asFunction<
void Function(JCharArrayPtr, int, int, ffi.Pointer<JCharMarker>)>()(
array, start, len, buf);
}
void SetShortArrayRegion(
JShortArrayPtr array, int start, int len, ffi.Pointer<JShortMarker> buf) {
return ref.SetShortArrayRegion.asFunction<
void Function(JShortArrayPtr, int, int,
ffi.Pointer<JShortMarker>)>()(array, start, len, buf);
}
void SetIntArrayRegion(
JIntArrayPtr array, int start, int len, ffi.Pointer<JIntMarker> buf) {
return ref.SetIntArrayRegion.asFunction<
void Function(JIntArrayPtr, int, int, ffi.Pointer<JIntMarker>)>()(
array, start, len, buf);
}
void SetLongArrayRegion(
JLongArrayPtr array, int start, int len, ffi.Pointer<JLongMarker> buf) {
return ref.SetLongArrayRegion.asFunction<
void Function(JLongArrayPtr, int, int, ffi.Pointer<JLongMarker>)>()(
array, start, len, buf);
}
void SetFloatArrayRegion(
JFloatArrayPtr array, int start, int len, ffi.Pointer<JFloatMarker> buf) {
return ref.SetFloatArrayRegion.asFunction<
void Function(JFloatArrayPtr, int, int,
ffi.Pointer<JFloatMarker>)>()(array, start, len, buf);
}
void SetDoubleArrayRegion(JDoubleArrayPtr array, int start, int len,
ffi.Pointer<JDoubleMarker> buf) {
return ref.SetDoubleArrayRegion.asFunction<
void Function(JDoubleArrayPtr, int, int,
ffi.Pointer<JDoubleMarker>)>()(array, start, len, buf);
}
int RegisterNatives(
JClassPtr clazz, ffi.Pointer<JNINativeMethod> methods, int nMethods) {
return ref.RegisterNatives.asFunction<
int Function(JClassPtr, ffi.Pointer<JNINativeMethod>, int)>()(
clazz, methods, nMethods);
}
int UnregisterNatives(JClassPtr clazz) {
return ref.UnregisterNatives.asFunction<int Function(JClassPtr)>()(clazz);
}
int MonitorEnter(JObjectPtr obj) {
return ref.MonitorEnter.asFunction<int Function(JObjectPtr)>()(obj);
}
int MonitorExit(JObjectPtr obj) {
return ref.MonitorExit.asFunction<int Function(JObjectPtr)>()(obj);
}
int GetJavaVM(ffi.Pointer<ffi.Pointer<JavaVM>> vm) {
return ref.GetJavaVM.asFunction<
int Function(ffi.Pointer<ffi.Pointer<JavaVM>>)>()(vm);
}
void GetStringRegion(
JStringPtr str, int start, int len, ffi.Pointer<JCharMarker> buf) {
return ref.GetStringRegion.asFunction<
void Function(JStringPtr, int, int, ffi.Pointer<JCharMarker>)>()(
str, start, len, buf);
}
void GetStringUTFRegion(
JStringPtr str, int start, int len, ffi.Pointer<ffi.Char> buf) {
return ref.GetStringUTFRegion.asFunction<
void Function(JStringPtr, int, int, ffi.Pointer<ffi.Char>)>()(
str, start, len, buf);
}
ffi.Pointer<ffi.Void> GetPrimitiveArrayCritical(
JArrayPtr array, ffi.Pointer<JBooleanMarker> isCopy) {
return ref.GetPrimitiveArrayCritical.asFunction<
ffi.Pointer<ffi.Void> Function(
JArrayPtr, ffi.Pointer<JBooleanMarker>)>()(array, isCopy);
}
void ReleasePrimitiveArrayCritical(
JArrayPtr array, ffi.Pointer<ffi.Void> carray, int mode) {
return ref.ReleasePrimitiveArrayCritical.asFunction<
void Function(
JArrayPtr, ffi.Pointer<ffi.Void>, int)>()(array, carray, mode);
}
ffi.Pointer<JCharMarker> GetStringCritical(
JStringPtr str, ffi.Pointer<JBooleanMarker> isCopy) {
return ref.GetStringCritical.asFunction<
ffi.Pointer<JCharMarker> Function(
JStringPtr, ffi.Pointer<JBooleanMarker>)>()(str, isCopy);
}
void ReleaseStringCritical(JStringPtr str, ffi.Pointer<JCharMarker> carray) {
return ref.ReleaseStringCritical.asFunction<
void Function(JStringPtr, ffi.Pointer<JCharMarker>)>()(str, carray);
}
JWeakPtr NewWeakGlobalRef(JObjectPtr obj) {
return ref.NewWeakGlobalRef.asFunction<JWeakPtr Function(JObjectPtr)>()(
obj);
}
void DeleteWeakGlobalRef(JWeakPtr obj) {
return ref.DeleteWeakGlobalRef.asFunction<void Function(JWeakPtr)>()(obj);
}
int ExceptionCheck() {
return ref.ExceptionCheck.asFunction<int Function()>()();
}
JObjectPtr NewDirectByteBuffer(ffi.Pointer<ffi.Void> address, int capacity) {
return ref.NewDirectByteBuffer.asFunction<
JObjectPtr Function(ffi.Pointer<ffi.Void>, int)>()(address, capacity);
}
ffi.Pointer<ffi.Void> GetDirectBufferAddress(JObjectPtr buf) {
return ref.GetDirectBufferAddress.asFunction<
ffi.Pointer<ffi.Void> Function(JObjectPtr)>()(buf);
}
int GetDirectBufferCapacity(JObjectPtr buf) {
return ref.GetDirectBufferCapacity.asFunction<int Function(JObjectPtr)>()(
buf);
}
int GetObjectRefType(JObjectPtr obj) {
return ref.GetObjectRefType.asFunction<int Function(JObjectPtr)>()(obj);
}
}
const int JNI_FALSE = 0;
const int JNI_TRUE = 1;
const int JNI_VERSION_1_1 = 65537;
const int JNI_VERSION_1_2 = 65538;
const int JNI_VERSION_1_4 = 65540;
const int JNI_VERSION_1_6 = 65542;
const int JNI_OK = 0;
const int JNI_ERR = -1;
const int JNI_EDETACHED = -2;
const int JNI_EVERSION = -3;
const int JNI_ENOMEM = -4;
const int JNI_EEXIST = -5;
const int JNI_EINVAL = -6;
const int JNI_COMMIT = 1;
const int JNI_ABORT = 2;