lime
Lime is a C++ library implementing Open Whisper System Signal protocol
|
Typedefs | |
template<class T > | |
using | ArraylikeElement = typename ArraylikeElementType< T >::type |
using | Boolean = Object< BooleanTag > |
using | Character = Object< CharacterTag > |
using | Number = Object< NumberTag > |
using | Byte = Object< ByteTag > |
using | Short = Object< ShortTag > |
using | Integer = Object< IntegerTag > |
using | Long = Object< LongTag > |
using | Float = Object< FloatTag > |
using | Double = Object< DoubleTag > |
using | UniqueLocalFrame = std::unique_ptr< JNIEnv, LocalFrameDeleter > |
using | RefDeletionMethod = void(JNIEnv::*)(::jobject) |
template<class T , template< RefDeletionMethod > class Deleter = DefaultRefDeleter> | |
using | UniqueGlobalRef = std::unique_ptr< T, Deleter<&JNIEnv::DeleteGlobalRef > > |
template<class T , template< RefDeletionMethod > class Deleter = DefaultRefDeleter> | |
using | UniqueWeakGlobalRef = std::unique_ptr< T, Deleter<&JNIEnv::DeleteWeakGlobalRef > > |
template<class T > | |
using | UniqueLocalRef = std::unique_ptr< T, DefaultRefDeleter<&JNIEnv::DeleteLocalRef > > |
using | UniqueStringChars = std::unique_ptr< const char16_t, StringCharsDeleter > |
using | UniqueStringUTFChars = std::unique_ptr< const char, StringUTFCharsDeleter > |
using | UniqueStringCritical = std::unique_ptr< const char16_t, StringCriticalDeleter > |
template<class E > | |
using | UniqueArrayElements = std::unique_ptr< E, ArrayElementsDeleter< E > > |
template<class E > | |
using | UniquePrimitiveArrayCritical = std::unique_ptr< void, PrimitiveArrayCriticalDeleter< E > > |
using | UniqueMonitor = std::unique_ptr< jobject, MonitorDeleter > |
using | UniqueEnv = std::unique_ptr< JNIEnv, JNIEnvDeleter > |
using | String = Object< StringTag > |
template<class T > | |
using | UntaggedType = decltype(Untag(std::declval< T >())) |
template<class Tag > | |
using | TagLiteral = typename TagLiteralImpl< Tag, std::make_index_sequence< StringLiteralLength(Tag::Name())> >::Value |
using | jsize = std::size_t |
using | jobjectArray = jarray< jobject > |
using | jbooleanArray = jarray< jboolean > |
using | jbyteArray = jarray< jbyte > |
using | jcharArray = jarray< jchar > |
using | jshortArray = jarray< jshort > |
using | jintArray = jarray< jint > |
using | jlongArray = jarray< jlong > |
using | jfloatArray = jarray< jfloat > |
using | jdoubleArray = jarray< jdouble > |
using | jfieldID = std::pointer_traits< ::jfieldID >::element_type |
using | jmethodID = std::pointer_traits< ::jmethodID >::element_type |
template<class T , template< RefDeletionMethod > class Deleter = DefaultRefDeleter> | |
using | Global = Unique< T, Deleter<&JNIEnv::DeleteGlobalRef > > |
template<class T , template< RefDeletionMethod > class Deleter = DefaultRefDeleter> | |
using | Weak = Unique< T, Deleter<&JNIEnv::DeleteWeakGlobalRef > > |
template<class T > | |
using | Local = Unique< T, DefaultRefDeleter<&JNIEnv::DeleteLocalRef > > |
template<class T > | |
using | Input = Unique< T, NullDeleter > |
template<class T > | |
using | RemoveUniqueType = typename RemoveUnique< T >::Type |
template<class T > | |
using | UnwrappedType = decltype(Unwrap< T >(std::declval< T >())) |
Enumerations | |
enum | version : jint { jni_version_1_1 = version(JNI_VERSION_1_1), jni_version_1_2 = version(JNI_VERSION_1_2), jni_version_1_4 = version(JNI_VERSION_1_4), jni_version_1_6 = version(JNI_VERSION_1_6) } |
enum | error : jint { jni_ok = error(JNI_OK), jni_err = error(JNI_ERR), jni_edetached = error(JNI_EDETACHED), jni_eversion = error(JNI_EVERSION) } |
Functions | |
template<class T > | |
std::vector< T > | MakeAnything (ThingToMake< std::vector< T >>, JNIEnv &env, const Array< T > &array) |
template<class T > | |
Local< Array< T > > | MakeAnything (ThingToMake< Array< T >>, JNIEnv &env, const std::vector< T > &array) |
std::string | MakeAnything (ThingToMake< std::string >, JNIEnv &env, const Array< jbyte > &array) |
Local< Array< jbyte > > | MakeAnything (ThingToMake< Array< jbyte >>, JNIEnv &env, const std::string &string) |
template<class E , std::size_t n> | |
E * | ArraylikeData (E(&a)[n]) |
template<class E , std::size_t n> | |
E * | ArraylikeData (std::array< E, n > &a) |
template<class E , std::size_t n> | |
E const * | ArraylikeData (const std::array< E, n > &a) |
template<class E , class A > | |
E * | ArraylikeData (std::vector< E, A > &a) |
template<class E , class A > | |
E const * | ArraylikeData (const std::vector< E, A > &a) |
template<class C , class T , class A > | |
C * | ArraylikeData (std::basic_string< C, T, A > &a) |
template<class C , class T , class A > | |
C const * | ArraylikeData (const std::basic_string< C, T, A > &a) |
template<class E , std::size_t n> | |
std::size_t | ArraylikeSize (E(&)[n]) |
template<class E , std::size_t n> | |
std::size_t | ArraylikeSize (const std::array< E, n > &) |
template<class E , class A > | |
std::size_t | ArraylikeSize (const std::vector< E, A > &a) |
template<class C , class T , class A > | |
std::size_t | ArraylikeSize (const std::basic_string< C, T, A > &a) |
template<class Unboxed > | |
decltype(auto) | Box (JNIEnv &env, Unboxed &&unboxed) |
template<class T > | |
decltype(auto) | Unbox (JNIEnv &env, const T &boxed) |
const std::error_category & | ErrorCategory () |
void | CheckErrorCode (jint err) |
template<class R > | |
R | CheckJavaException (JNIEnv &env, R &&r) |
void | CheckJavaException (JNIEnv &env) |
void | CheckJavaExceptionThenErrorCode (JNIEnv &env, jint err) |
inline ::jclass | JavaErrorClass (JNIEnv &env) |
void | ThrowJavaError (JNIEnv &env, std::exception_ptr e) |
jint | GetVersion (JNIEnv &env) |
jclass & | DefineClass (JNIEnv &env, const char *name, jobject &loader, const jbyte *buf, jsize size) |
template<class Array > | |
auto | DefineClass (JNIEnv &env, const char *name, jobject &loader, const Array &buf) -> std::enable_if_t< IsArraylike< Array >::value, jclass & > |
jclass & | FindClass (JNIEnv &env, const char *name) |
jmethodID * | FromReflectedMethod (JNIEnv &env, jobject *obj) |
jfieldID * | FromReflectedField (JNIEnv &env, jobject *obj) |
jobject & | ToReflectedMethod (JNIEnv &env, jclass &clazz, jmethodID &method, bool isStatic) |
jobject & | ToReflectedField (JNIEnv &env, jclass &clazz, jfieldID &field, bool isStatic) |
jclass * | GetSuperclass (JNIEnv &env, jclass &clazz) |
bool | IsAssignableFrom (JNIEnv &env, jclass &clazz1, jclass &clazz2) |
void | Throw (JNIEnv &env, jthrowable &obj) |
void | ThrowNew (JNIEnv &env, jclass &clazz, const char *msg=nullptr) |
bool | ExceptionCheck (JNIEnv &env) |
jthrowable * | ExceptionOccurred (JNIEnv &env) |
void | ExceptionDescribe (JNIEnv &env) |
void | ExceptionClear (JNIEnv &env) |
void | FatalError (JNIEnv &env, const char *msg) |
UniqueLocalFrame | PushLocalFrame (JNIEnv &env, jint capacity) |
jobject * | PopLocalFrame (JNIEnv &env, UniqueLocalFrame &&frame, jobject *result=nullptr) |
template<template< RefDeletionMethod > class Deleter, class T > | |
UniqueGlobalRef< T, Deleter > | NewGlobalRef (JNIEnv &env, T *t) |
template<class T > | |
UniqueGlobalRef< T > | NewGlobalRef (JNIEnv &env, T *t) |
template<template< RefDeletionMethod > class Deleter, class T , template< RefDeletionMethod > class WeakDeleter> | |
UniqueGlobalRef< T, Deleter > | NewGlobalRef (JNIEnv &env, const UniqueWeakGlobalRef< T, WeakDeleter > &t) |
template<class T , template< RefDeletionMethod > class WeakDeleter> | |
UniqueGlobalRef< T > | NewGlobalRef (JNIEnv &env, const UniqueWeakGlobalRef< T, WeakDeleter > &t) |
template<class T , template< RefDeletionMethod > class Deleter> | |
void | DeleteGlobalRef (JNIEnv &env, UniqueGlobalRef< T, Deleter > &&ref) |
template<class T > | |
UniqueLocalRef< T > | NewLocalRef (JNIEnv &env, T *t) |
template<class T , template< RefDeletionMethod > class WeakDeleter> | |
UniqueLocalRef< T > | NewLocalRef (JNIEnv &env, const UniqueWeakGlobalRef< T, WeakDeleter > &t) |
template<class T > | |
void | DeleteLocalRef (JNIEnv &env, UniqueLocalRef< T > &&ref) |
void | EnsureLocalCapacity (JNIEnv &env, jint capacity) |
template<template< RefDeletionMethod > class Deleter, class T > | |
UniqueWeakGlobalRef< T, Deleter > | NewWeakGlobalRef (JNIEnv &env, T *t) |
template<class T > | |
UniqueWeakGlobalRef< T > | NewWeakGlobalRef (JNIEnv &env, T *t) |
template<class T , template< RefDeletionMethod > class Deleter> | |
void | DeleteWeakGlobalRef (JNIEnv &env, UniqueWeakGlobalRef< T, Deleter > &&ref) |
bool | IsSameObject (JNIEnv &env, jobject *ref1, jobject *ref2) |
jobject & | AllocObject (JNIEnv &env, jclass &clazz) |
template<class... Args> | |
jobject & | NewObject (JNIEnv &env, jclass &clazz, jmethodID &method, Args &&... args) |
jclass & | GetObjectClass (JNIEnv &env, jobject &obj) |
bool | IsInstanceOf (JNIEnv &env, jobject *obj, jclass &clazz) |
jmethodID & | GetMethodID (JNIEnv &env, jclass &clazz, const char *name, const char *sig) |
template<class R , class... Args> | |
std::enable_if_t<!std::is_void< R >::value, R > | CallMethod (JNIEnv &env, jobject *obj, jmethodID &method, Args &&... args) |
template<class R , class... Args> | |
std::enable_if_t< std::is_void< R >::value, R > | CallMethod (JNIEnv &env, jobject *obj, jmethodID &method, Args &&... args) |
template<class R , class... Args> | |
std::enable_if_t<!std::is_void< R >::value, R > | CallNonvirtualMethod (JNIEnv &env, jobject *obj, jclass &clazz, jmethodID &method, Args &&... args) |
template<class R , class... Args> | |
std::enable_if_t< std::is_void< R >::value, R > | CallNonvirtualMethod (JNIEnv &env, jobject *obj, jclass &clazz, jmethodID &method, Args &&... args) |
jfieldID & | GetFieldID (JNIEnv &env, jclass &clazz, const char *name, const char *sig) |
template<class T > | |
T | GetField (JNIEnv &env, jobject *obj, jfieldID &field) |
template<class T > | |
void | SetField (JNIEnv &env, jobject *obj, jfieldID &field, T value) |
jmethodID & | GetStaticMethodID (JNIEnv &env, jclass &clazz, const char *name, const char *sig) |
template<class R , class... Args> | |
std::enable_if_t<!std::is_void< R >::value, R > | CallStaticMethod (JNIEnv &env, jclass &clazz, jmethodID &method, Args &&... args) |
template<class R , class... Args> | |
std::enable_if_t< std::is_void< R >::value, R > | CallStaticMethod (JNIEnv &env, jclass &clazz, jmethodID &method, Args &&... args) |
jfieldID & | GetStaticFieldID (JNIEnv &env, jclass &clazz, const char *name, const char *sig) |
template<class T > | |
T | GetStaticField (JNIEnv &env, jclass &clazz, jfieldID &field) |
template<class T > | |
void | SetStaticField (JNIEnv &env, jclass &clazz, jfieldID &field, T value) |
jstring & | NewString (JNIEnv &env, const char16_t *chars, jsize len) |
template<class Array > | |
auto | NewString (JNIEnv &env, const Array &chars) -> std::enable_if_t< IsArraylike< Array >::value, jstring & > |
jsize | GetStringLength (JNIEnv &env, jstring &string) |
std::tuple< UniqueStringChars, bool > | GetStringChars (JNIEnv &env, jstring &string) |
void | ReleaseStringChars (JNIEnv &env, jstring &string, UniqueStringChars &&chars) |
jstring & | NewStringUTF (JNIEnv &env, const char *bytes) |
jsize | GetStringUTFLength (JNIEnv &env, jstring &string) |
std::tuple< UniqueStringUTFChars, bool > | GetStringUTFChars (JNIEnv &env, jstring &string) |
void | ReleaseStringUTFChars (JNIEnv &env, jstring &string, UniqueStringUTFChars &&chars) |
void | GetStringRegion (JNIEnv &env, jstring &string, jsize start, jsize len, char16_t *buf) |
template<class Array > | |
auto | GetStringRegion (JNIEnv &env, jstring &string, jsize start, Array &buf) -> std::enable_if_t< IsArraylike< Array >::value > |
void | GetStringUTFRegion (JNIEnv &env, jstring &string, jsize start, jsize len, char *buf) |
template<class Array > | |
auto | GetStringUTFRegion (JNIEnv &env, jstring &string, jsize start, Array &buf) -> std::enable_if_t< IsArraylike< Array >::value > |
std::tuple< UniqueStringCritical, bool > | GetStringCritical (JNIEnv &env, jstring &string) |
void | ReleaseStringCritical (JNIEnv &env, jstring &string, UniqueStringCritical &&chars) |
template<class E > | |
jsize | GetArrayLength (JNIEnv &env, jarray< E > &array) |
template<class E > | |
jarray< E > & | NewArray (JNIEnv &env, jsize length) |
template<class E > | |
std::tuple< UniqueArrayElements< E >, bool > | GetArrayElements (JNIEnv &env, jarray< E > &array) |
template<class E > | |
void | ReleaseArrayElements (JNIEnv &env, jarray< E > &array, E *elems) |
template<class E > | |
void | ReleaseArrayElements (JNIEnv &env, jarray< E > &array, UniqueArrayElements< E > &&elems) |
template<class E > | |
std::tuple< UniquePrimitiveArrayCritical< E >, bool > | GetPrimitiveArrayCritical (JNIEnv &env, jarray< E > &array) |
template<class E > | |
void | ReleasePrimitiveArrayCritical (JNIEnv &env, jarray< E > &array, void *carray) |
template<class E > | |
void | ReleasePrimitiveArrayCritical (JNIEnv &env, jarray< E > &array, UniquePrimitiveArrayCritical< E > &&carray) |
template<class T > | |
void | GetArrayRegion (JNIEnv &env, jarray< T > &array, jsize start, jsize len, T *buf) |
template<class T , class Array > | |
auto | GetArrayRegion (JNIEnv &env, jarray< T > &array, jsize start, Array &buf) -> std::enable_if_t< IsArraylike< Array >::value > |
template<class T > | |
void | SetArrayRegion (JNIEnv &env, jarray< T > &array, jsize start, jsize len, const T *buf) |
template<class T , class Array > | |
auto | SetArrayRegion (JNIEnv &env, jarray< T > &array, jsize start, const Array &buf) -> std::enable_if_t< IsArraylike< Array >::value > |
jarray< jobject > & | NewObjectArray (JNIEnv &env, jsize length, jclass &elementClass, jobject *initialElement=nullptr) |
jobject * | GetObjectArrayElement (JNIEnv &env, jarray< jobject > &array, jsize index) |
void | SetObjectArrayElement (JNIEnv &env, jarray< jobject > &array, jsize index, jobject *value) |
template<class... Methods> | |
void | RegisterNatives (JNIEnv &env, jclass &clazz, const Methods &... methods) |
void | UnregisterNatives (JNIEnv &env, jclass &clazz) |
UniqueMonitor | MonitorEnter (JNIEnv &env, jobject *obj) |
void | MonitorExit (JNIEnv &env, UniqueMonitor &&monitor) |
JavaVM & | GetJavaVM (JNIEnv &env) |
jobject & | NewDirectByteBuffer (JNIEnv &env, void *address, jlong capacity) |
void * | GetDirectBufferAddress (JNIEnv &env, jobject &buf) |
jlong | GetDirectBufferCapacity (JNIEnv &env, jobject &buf) |
jobjectRefType | GetObjectRefType (JNIEnv &env, jobject *obj) |
UniqueEnv | AttachCurrentThread (JavaVM &vm) |
void | DetachCurrentThread (JavaVM &vm, UniqueEnv &&env) |
JNIEnv & | GetEnv (JavaVM &vm, version version=jni_version_1_1) |
template<class Result , class... P> | |
auto | Make (P &&... p) |
template<class M > | |
auto | MakeNativeMethod (const char *name, const char *sig, const M &m, std::enable_if_t< std::is_class< M >::value > *=nullptr) |
Low-level, lambda. More... | |
template<class M , M method> | |
auto | MakeNativeMethod (const char *name, const char *sig) |
Low-level, function pointer. More... | |
template<class M > | |
auto | MakeNativeMethod (const char *name, const M &m) |
template<class M , M method> | |
auto | MakeNativeMethod (const char *name) |
template<class L > | |
auto | MakeNativePeerMethod (const char *name, const L &lambda, std::enable_if_t< std::is_class< L >::value > *=nullptr) |
template<class M , M method> | |
auto | MakeNativePeerMethod (const char *name, std::enable_if_t< !std::is_member_function_pointer< M >::value > *=nullptr) |
template<class M , M method> | |
auto | MakeNativePeerMethod (const char *name, std::enable_if_t< std::is_member_function_pointer< M >::value > *=nullptr) |
template<class Peer , class TagType , class... Methods> | |
void | RegisterNativePeer (JNIEnv &env, const Class< TagType > &clazz, const char *fieldName, Methods &&... methods) |
template<class Peer , class TagType , class Initializer , class... Methods> | |
void | RegisterNativePeer (JNIEnv &env, const Class< TagType > &clazz, const char *fieldName, Initializer initialize, const char *initializeMethodName, const char *finalizeMethodName, Methods &&... methods) |
template<class Peer , class... Args> | |
std::unique_ptr< Peer > | MakePeer (jni::JNIEnv &env, Args... args) |
void | ThrowNullPointerException (JNIEnv &env, const char *message=nullptr) |
template<class T > | |
void | NullCheck (JNIEnv &env, T *ptr, const char *message=nullptr) |
template<class T > | |
T & | SafeDereference (JNIEnv &env, T *ptr, const char *message=nullptr) |
template<class OutTagType , class T > | |
Local< Object< OutTagType > > | Cast (JNIEnv &env, const Class< OutTagType > &clazz, const T &object) |
std::u16string | MakeAnything (ThingToMake< std::u16string >, JNIEnv &env, const String &string) |
std::string | MakeAnything (ThingToMake< std::string >, JNIEnv &env, const String &string) |
Local< String > | MakeAnything (ThingToMake< String >, JNIEnv &env, const std::u16string &string) |
Local< String > | MakeAnything (ThingToMake< String >, JNIEnv &env, const std::string &string) |
std::u16string | convertUTF8ToUTF16 (const std::string &string) |
std::string | convertUTF16ToUTF8 (const std::u16string &string) |
template<class T > | |
auto | Tag (JNIEnv &, T primitive) -> std::enable_if_t< IsPrimitive< T >::value, T > |
template<class T , class U > | |
auto | Tag (JNIEnv &env, U *u) -> std::enable_if_t< !IsPrimitive< T >::value, Input< T > > |
template<class T , class U > | |
auto | Tag (JNIEnv &env, U &u) -> std::enable_if_t< !IsPrimitive< T >::value, Input< T > > |
template<class T > | |
auto | Untag (T primitive) -> std::enable_if_t< IsPrimitive< T >::value, T > |
template<class T > | |
auto | Untag (const T &t) -> std::enable_if_t< !IsPrimitive< T >::value, decltype(t.get()) > |
template<class T > | |
T & | AsLvalue (T &&x) |
constexpr std::size_t | StringLiteralLength (const char *str, std::size_t len=0) |
template<char... As, char... Bs> | |
constexpr auto | Concat (const StringLiteral< As... > &, const StringLiteral< Bs... > &) |
template<class A , class B , class... Rest> | |
constexpr auto | Concat (const A &a, const B &b, const Rest &... rest) |
template<class T > | |
auto | ReleaseUnique (T primitive) |
template<class T , class D > | |
auto | ReleaseUnique (Unique< T, D > &&t) |
template<template< RefDeletionMethod > class Deleter, class T > | |
auto | NewGlobal (JNIEnv &env, const T &t) |
template<class T > | |
auto | NewGlobal (JNIEnv &env, const T &t) |
template<template< RefDeletionMethod > class Deleter, class T , template< RefDeletionMethod > class WeakDeleter> | |
Global< T, Deleter > | NewGlobal (JNIEnv &env, const Weak< T, WeakDeleter > &t) |
template<class T > | |
Global< T > | NewGlobal (JNIEnv &env, const Weak< T > &t) |
template<template< RefDeletionMethod > class Deleter, class T > | |
auto | NewWeak (JNIEnv &env, const T &t) |
template<class T > | |
auto | NewWeak (JNIEnv &env, const T &t) |
template<class T > | |
auto | NewLocal (JNIEnv &env, const T &t) |
template<class T , template< RefDeletionMethod > class WeakDeleter> | |
Local< T > | NewLocal (JNIEnv &env, const Weak< T, WeakDeleter > &t) |
template<class W , class U > | |
auto | Wrap (U &&u) |
template<class W > | |
auto | Unwrap (W &&w) |
Variables | |
const jboolean | jni_false = 0 |
const jboolean | jni_true = 1 |
using jni::ArraylikeElement = typedef typename ArraylikeElementType<T>::type |
using jni::Boolean = typedef Object<BooleanTag> |
using jni::Character = typedef Object<CharacterTag> |
using jni::Double = typedef Object<DoubleTag> |
using jni::Float = typedef Object<FloatTag> |
using jni::Global = typedef Unique< T, Deleter<&JNIEnv::DeleteGlobalRef> > |
using jni::Input = typedef Unique< T, NullDeleter > |
using jni::Integer = typedef Object<IntegerTag> |
using jni::jbooleanArray = typedef jarray< jboolean > |
using jni::jbyteArray = typedef jarray< jbyte > |
using jni::jcharArray = typedef jarray< jchar > |
using jni::jdoubleArray = typedef jarray< jdouble > |
using jni::jfieldID = typedef std::pointer_traits< ::jfieldID >::element_type |
using jni::jfloatArray = typedef jarray< jfloat > |
using jni::jintArray = typedef jarray< jint > |
using jni::jlongArray = typedef jarray< jlong > |
using jni::jmethodID = typedef std::pointer_traits< ::jmethodID >::element_type |
using jni::jobjectArray = typedef jarray< jobject > |
using jni::jshortArray = typedef jarray< jshort > |
using jni::jsize = typedef std::size_t |
using jni::Local = typedef Unique< T, DefaultRefDeleter<&JNIEnv::DeleteLocalRef> > |
using jni::Number = typedef Object<NumberTag> |
using jni::RefDeletionMethod = typedef void (JNIEnv::*)(::jobject) |
using jni::RemoveUniqueType = typedef typename RemoveUnique<T>::Type |
using jni::Short = typedef Object<ShortTag> |
using jni::String = typedef Object<StringTag> |
using jni::TagLiteral = typedef typename TagLiteralImpl< Tag, std::make_index_sequence<StringLiteralLength(Tag::Name())> >::Value |
using jni::UniqueArrayElements = typedef std::unique_ptr< E, ArrayElementsDeleter<E> > |
using jni::UniqueEnv = typedef std::unique_ptr< JNIEnv, JNIEnvDeleter > |
using jni::UniqueGlobalRef = typedef std::unique_ptr< T, Deleter<&JNIEnv::DeleteGlobalRef> > |
using jni::UniqueLocalFrame = typedef std::unique_ptr< JNIEnv, LocalFrameDeleter > |
using jni::UniqueLocalRef = typedef std::unique_ptr< T, DefaultRefDeleter<&JNIEnv::DeleteLocalRef> > |
using jni::UniqueMonitor = typedef std::unique_ptr< jobject, MonitorDeleter > |
using jni::UniquePrimitiveArrayCritical = typedef std::unique_ptr< void, PrimitiveArrayCriticalDeleter<E> > |
using jni::UniqueStringChars = typedef std::unique_ptr< const char16_t, StringCharsDeleter > |
using jni::UniqueStringCritical = typedef std::unique_ptr< const char16_t, StringCriticalDeleter > |
using jni::UniqueStringUTFChars = typedef std::unique_ptr< const char, StringUTFCharsDeleter > |
using jni::UniqueWeakGlobalRef = typedef std::unique_ptr< T, Deleter<&JNIEnv::DeleteWeakGlobalRef> > |
using jni::UntaggedType = typedef decltype(Untag(std::declval<T>())) |
using jni::UnwrappedType = typedef decltype(Unwrap<T>(std::declval<T>())) |
using jni::Weak = typedef Unique< T, Deleter<&JNIEnv::DeleteWeakGlobalRef> > |
enum jni::error : jint |
enum jni::version : jint |
E* jni::ArraylikeData | ( | E(&) | a[n] | ) |
E* jni::ArraylikeData | ( | std::array< E, n > & | a | ) |
E const* jni::ArraylikeData | ( | const std::array< E, n > & | a | ) |
E* jni::ArraylikeData | ( | std::vector< E, A > & | a | ) |
E const* jni::ArraylikeData | ( | const std::vector< E, A > & | a | ) |
C* jni::ArraylikeData | ( | std::basic_string< C, T, A > & | a | ) |
C const* jni::ArraylikeData | ( | const std::basic_string< C, T, A > & | a | ) |
std::size_t jni::ArraylikeSize | ( | E(&) | [n] | ) |
std::size_t jni::ArraylikeSize | ( | const std::array< E, n > & | ) |
std::size_t jni::ArraylikeSize | ( | const std::vector< E, A > & | a | ) |
std::size_t jni::ArraylikeSize | ( | const std::basic_string< C, T, A > & | a | ) |
T& jni::AsLvalue | ( | T && | x | ) |
|
inline |
decltype(auto) jni::Box | ( | JNIEnv & | env, |
Unboxed && | unboxed | ||
) |
std::enable_if_t<!std::is_void<R>::value, R> jni::CallMethod | ( | JNIEnv & | env, |
jobject * | obj, | ||
jmethodID & | method, | ||
Args &&... | args | ||
) |
std::enable_if_t<std::is_void<R>::value, R> jni::CallMethod | ( | JNIEnv & | env, |
jobject * | obj, | ||
jmethodID & | method, | ||
Args &&... | args | ||
) |
std::enable_if_t<!std::is_void<R>::value, R> jni::CallNonvirtualMethod | ( | JNIEnv & | env, |
jobject * | obj, | ||
jclass & | clazz, | ||
jmethodID & | method, | ||
Args &&... | args | ||
) |
std::enable_if_t<std::is_void<R>::value, R> jni::CallNonvirtualMethod | ( | JNIEnv & | env, |
jobject * | obj, | ||
jclass & | clazz, | ||
jmethodID & | method, | ||
Args &&... | args | ||
) |
std::enable_if_t<!std::is_void<R>::value, R> jni::CallStaticMethod | ( | JNIEnv & | env, |
jclass & | clazz, | ||
jmethodID & | method, | ||
Args &&... | args | ||
) |
std::enable_if_t<std::is_void<R>::value, R> jni::CallStaticMethod | ( | JNIEnv & | env, |
jclass & | clazz, | ||
jmethodID & | method, | ||
Args &&... | args | ||
) |
Local<Object<OutTagType> > jni::Cast | ( | JNIEnv & | env, |
const Class< OutTagType > & | clazz, | ||
const T & | object | ||
) |
|
inline |
R jni::CheckJavaException | ( | JNIEnv & | env, |
R && | r | ||
) |
|
inline |
|
inline |
constexpr auto jni::Concat | ( | const StringLiteral< As... > & | , |
const StringLiteral< Bs... > & | |||
) |
constexpr auto jni::Concat | ( | const A & | a, |
const B & | b, | ||
const Rest &... | rest | ||
) |
|
inline |
|
inline |
|
inline |
auto jni::DefineClass | ( | JNIEnv & | env, |
const char * | name, | ||
jobject & | loader, | ||
const Array & | buf | ||
) | -> std::enable_if_t< IsArraylike<Array>::value, jclass& > |
void jni::DeleteGlobalRef | ( | JNIEnv & | env, |
UniqueGlobalRef< T, Deleter > && | ref | ||
) |
void jni::DeleteLocalRef | ( | JNIEnv & | env, |
UniqueLocalRef< T > && | ref | ||
) |
void jni::DeleteWeakGlobalRef | ( | JNIEnv & | env, |
UniqueWeakGlobalRef< T, Deleter > && | ref | ||
) |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
std::tuple<UniqueArrayElements<E>, bool> jni::GetArrayElements | ( | JNIEnv & | env, |
jarray< E > & | array | ||
) |
void jni::GetArrayRegion | ( | JNIEnv & | env, |
jarray< T > & | array, | ||
jsize | start, | ||
jsize | len, | ||
T * | buf | ||
) |
auto jni::GetArrayRegion | ( | JNIEnv & | env, |
jarray< T > & | array, | ||
jsize | start, | ||
Array & | buf | ||
) | -> std::enable_if_t< IsArraylike<Array>::value > |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
std::tuple<UniquePrimitiveArrayCritical<E>, bool> jni::GetPrimitiveArrayCritical | ( | JNIEnv & | env, |
jarray< E > & | array | ||
) |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
auto jni::GetStringRegion | ( | JNIEnv & | env, |
jstring & | string, | ||
jsize | start, | ||
Array & | buf | ||
) | -> std::enable_if_t< IsArraylike<Array>::value > |
|
inline |
|
inline |
auto jni::GetStringUTFRegion | ( | JNIEnv & | env, |
jstring & | string, | ||
jsize | start, | ||
Array & | buf | ||
) | -> std::enable_if_t< IsArraylike<Array>::value > |
|
inline |
inline ::jclass jni::JavaErrorClass | ( | JNIEnv & | env | ) |
auto jni::Make | ( | P &&... | p | ) |
|
inline |
|
inline |
|
inline |
|
inline |
std::vector<T> jni::MakeAnything | ( | ThingToMake< std::vector< T >> | , |
JNIEnv & | env, | ||
const Array< T > & | array | ||
) |
Local<Array<T> > jni::MakeAnything | ( | ThingToMake< Array< T >> | , |
JNIEnv & | env, | ||
const std::vector< T > & | array | ||
) |
|
inline |
|
inline |
auto jni::MakeNativeMethod | ( | const char * | name, |
const char * | sig, | ||
const M & | m, | ||
std::enable_if_t< std::is_class< M >::value > * | = nullptr |
||
) |
Low-level, lambda.
auto jni::MakeNativeMethod | ( | const char * | name, |
const char * | sig | ||
) |
Low-level, function pointer.
auto jni::MakeNativeMethod | ( | const char * | name, |
const M & | m | ||
) |
auto jni::MakeNativeMethod | ( | const char * | name | ) |
auto jni::MakeNativePeerMethod | ( | const char * | name, |
const L & | lambda, | ||
std::enable_if_t< std::is_class< L >::value > * | = nullptr |
||
) |
auto jni::MakeNativePeerMethod | ( | const char * | name, |
std::enable_if_t< !std::is_member_function_pointer< M >::value > * | = nullptr |
||
) |
auto jni::MakeNativePeerMethod | ( | const char * | name, |
std::enable_if_t< std::is_member_function_pointer< M >::value > * | = nullptr |
||
) |
std::unique_ptr<Peer> jni::MakePeer | ( | jni::JNIEnv & | env, |
Args... | args | ||
) |
|
inline |
|
inline |
|
inline |
auto jni::NewGlobal | ( | JNIEnv & | env, |
const T & | t | ||
) |
auto jni::NewGlobal | ( | JNIEnv & | env, |
const T & | t | ||
) |
Global<T, Deleter> jni::NewGlobal | ( | JNIEnv & | env, |
const Weak< T, WeakDeleter > & | t | ||
) |
UniqueGlobalRef<T, Deleter> jni::NewGlobalRef | ( | JNIEnv & | env, |
T * | t | ||
) |
UniqueGlobalRef<T> jni::NewGlobalRef | ( | JNIEnv & | env, |
T * | t | ||
) |
UniqueGlobalRef<T, Deleter> jni::NewGlobalRef | ( | JNIEnv & | env, |
const UniqueWeakGlobalRef< T, WeakDeleter > & | t | ||
) |
UniqueGlobalRef<T> jni::NewGlobalRef | ( | JNIEnv & | env, |
const UniqueWeakGlobalRef< T, WeakDeleter > & | t | ||
) |
auto jni::NewLocal | ( | JNIEnv & | env, |
const T & | t | ||
) |
Local<T> jni::NewLocal | ( | JNIEnv & | env, |
const Weak< T, WeakDeleter > & | t | ||
) |
UniqueLocalRef<T> jni::NewLocalRef | ( | JNIEnv & | env, |
T * | t | ||
) |
UniqueLocalRef<T> jni::NewLocalRef | ( | JNIEnv & | env, |
const UniqueWeakGlobalRef< T, WeakDeleter > & | t | ||
) |
jobject& jni::NewObject | ( | JNIEnv & | env, |
jclass & | clazz, | ||
jmethodID & | method, | ||
Args &&... | args | ||
) |
|
inline |
auto jni::NewString | ( | JNIEnv & | env, |
const Array & | chars | ||
) | -> std::enable_if_t< IsArraylike<Array>::value, jstring& > |
|
inline |
auto jni::NewWeak | ( | JNIEnv & | env, |
const T & | t | ||
) |
auto jni::NewWeak | ( | JNIEnv & | env, |
const T & | t | ||
) |
UniqueWeakGlobalRef<T, Deleter> jni::NewWeakGlobalRef | ( | JNIEnv & | env, |
T * | t | ||
) |
UniqueWeakGlobalRef<T> jni::NewWeakGlobalRef | ( | JNIEnv & | env, |
T * | t | ||
) |
void jni::NullCheck | ( | JNIEnv & | env, |
T * | ptr, | ||
const char * | message = nullptr |
||
) |
|
inline |
|
inline |
void jni::RegisterNativePeer | ( | JNIEnv & | env, |
const Class< TagType > & | clazz, | ||
const char * | fieldName, | ||
Methods &&... | methods | ||
) |
A registration function for native methods on a "native peer": a long-lived native object corresponding to a Java object, usually created when the Java object is created and destroyed when the Java object's finalizer runs.
It assumes that the Java object has a field, named by fieldName
, of Java type long
, which is used to hold a pointer to the native peer.
Methods
must be a sequence of NativePeerMethod
instances, instantiated with pointer to member functions of the native peer class. For each method in methods
, a native method is bound with a signature corresponding to that of the member function. The wrapper for that native method obtains the native peer instance from the Java field and calls the native peer method on it, passing along any arguments.
An overload is provided that accepts a Callable object with a unique_ptr result type and the names for native creation and finalization methods, allowing creation and disposal of the native peer from Java.
For an example of all of the above, see the examples
directory.
void jni::RegisterNativePeer | ( | JNIEnv & | env, |
const Class< TagType > & | clazz, | ||
const char * | fieldName, | ||
Initializer | initialize, | ||
const char * | initializeMethodName, | ||
const char * | finalizeMethodName, | ||
Methods &&... | methods | ||
) |
|
inline |
void jni::ReleaseArrayElements | ( | JNIEnv & | env, |
jarray< E > & | array, | ||
E * | elems | ||
) |
void jni::ReleaseArrayElements | ( | JNIEnv & | env, |
jarray< E > & | array, | ||
UniqueArrayElements< E > && | elems | ||
) |
void jni::ReleasePrimitiveArrayCritical | ( | JNIEnv & | env, |
jarray< E > & | array, | ||
void * | carray | ||
) |
void jni::ReleasePrimitiveArrayCritical | ( | JNIEnv & | env, |
jarray< E > & | array, | ||
UniquePrimitiveArrayCritical< E > && | carray | ||
) |
|
inline |
|
inline |
|
inline |
auto jni::ReleaseUnique | ( | T | primitive | ) |
auto jni::ReleaseUnique | ( | Unique< T, D > && | t | ) |
T& jni::SafeDereference | ( | JNIEnv & | env, |
T * | ptr, | ||
const char * | message = nullptr |
||
) |
void jni::SetArrayRegion | ( | JNIEnv & | env, |
jarray< T > & | array, | ||
jsize | start, | ||
jsize | len, | ||
const T * | buf | ||
) |
auto jni::SetArrayRegion | ( | JNIEnv & | env, |
jarray< T > & | array, | ||
jsize | start, | ||
const Array & | buf | ||
) | -> std::enable_if_t< IsArraylike<Array>::value > |
|
inline |
void jni::SetStaticField | ( | JNIEnv & | env, |
jclass & | clazz, | ||
jfieldID & | field, | ||
T | value | ||
) |
constexpr std::size_t jni::StringLiteralLength | ( | const char * | str, |
std::size_t | len = 0 |
||
) |
auto jni::Tag | ( | JNIEnv & | , |
T | primitive | ||
) | -> std::enable_if_t< IsPrimitive<T>::value, T > |
auto jni::Tag | ( | JNIEnv & | env, |
U * | u | ||
) | -> std::enable_if_t< !IsPrimitive<T>::value, Input<T> > |
auto jni::Tag | ( | JNIEnv & | env, |
U & | u | ||
) | -> std::enable_if_t< !IsPrimitive<T>::value, Input<T> > |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
decltype(auto) jni::Unbox | ( | JNIEnv & | env, |
const T & | boxed | ||
) |
|
inline |
auto jni::Untag | ( | T | primitive | ) | -> std::enable_if_t< IsPrimitive<T>::value, T > |
auto jni::Untag | ( | const T & | t | ) | -> std::enable_if_t< !IsPrimitive<T>::value, decltype(t.get()) > |
auto jni::Unwrap | ( | W && | w | ) |
auto jni::Wrap | ( | U && | u | ) |
const jboolean jni::jni_false = 0 |
const jboolean jni::jni_true = 1 |