lime
Lime is a C++ library implementing Open Whisper System Signal protocol
Loading...
Searching...
No Matches
jni::Object< TheTag > Class Template Reference

#include <object.hpp>

Inheritance diagram for jni::Object< TheTag >:
jni::Object< ArrayTag< E > > jni::Object< ArrayTag< Object< TheTag > > > jni::Object< TagType > jni::Object< BooleanTag > jni::Object< CharacterTag > jni::Object< NumberTag > jni::Object< ByteTag > jni::Object< ShortTag > jni::Object< IntegerTag > jni::Object< LongTag > jni::Object< FloatTag > jni::Object< DoubleTag > jni::Object< ClassTag > jni::Object< StringTag > jni::Object< typename SuperTag< Tag >::Type > jni::Object< ObjectTag >

Public Types

using TagType = TheTag
using SuperType = typename TagTraits<TheTag>::SuperType
using UntaggedType = typename TagTraits<TheTag>::UntaggedType

Public Member Functions

UntaggedTypeget () const
UntaggedTypeoperator* () const
template<class T>
auto Get (JNIEnv &env, const Field< TagType, T > &field) const -> std::enable_if_t< IsPrimitive< T >::value, T >
template<class T>
auto Get (JNIEnv &env, const Field< TagType, T > &field) const -> std::enable_if_t< !IsPrimitive< T >::value, Local< T > >
template<class T>
auto Set (JNIEnv &env, const Field< TagType, T > &field, T value) const -> std::enable_if_t< IsPrimitive< T >::value >
template<class Expected, class Actual>
auto Set (JNIEnv &env, const Field< TagType, Expected > &field, const Actual &value) const -> std::enable_if_t< !IsPrimitive< Expected >::value &&std::is_convertible< const Actual &, const Expected & >::value >
template<class R, class... ExpectedArgs, class... ActualArgs>
auto Call (JNIEnv &env, const Method< TagType, R(ExpectedArgs...)> &method, const ActualArgs &... args) const -> std::enable_if_t< IsPrimitive< R >::value &&Conjunction< std::is_convertible< const ActualArgs &, const ExpectedArgs & >... >::value, R >
template<class R, class... ExpectedArgs, class... ActualArgs>
auto Call (JNIEnv &env, const Method< TagType, R(ExpectedArgs...)> &method, const ActualArgs &... args) const -> std::enable_if_t< !IsPrimitive< R >::value &&!std::is_void< R >::value &&Conjunction< std::is_convertible< const ActualArgs &, const ExpectedArgs & >... >::value, Local< R > >
template<class... ExpectedArgs, class... ActualArgs>
auto Call (JNIEnv &env, const Method< TagType, void(ExpectedArgs...)> &method, const ActualArgs &... args) const -> std::enable_if_t< Conjunction< std::is_convertible< const ActualArgs &, const ExpectedArgs & >... >::value >
template<class R, class... ExpectedArgs, class... ActualArgs>
auto CallNonvirtual (JNIEnv &env, const Class< TagType > &clazz, const Method< TagType, R(ExpectedArgs...)> &method, const ActualArgs &... args) const -> std::enable_if_t< IsPrimitive< R >::value &&Conjunction< std::is_convertible< const ActualArgs &, const ExpectedArgs & >... >::value, R >
template<class R, class... ExpectedArgs, class... ActualArgs>
auto CallNonvirtual (JNIEnv &env, const Class< TagType > &clazz, const Method< TagType, R(ExpectedArgs...)> &method, const ActualArgs &... args) const -> std::enable_if_t< !IsPrimitive< R >::value &&!std::is_void< R >::value &&Conjunction< std::is_convertible< const ActualArgs &, const ExpectedArgs & >... >::value, Local< R > >
template<class... ExpectedArgs, class... ActualArgs>
auto CallNonvirtual (JNIEnv &env, const Class< TagType > &clazz, const Method< TagType, void(ExpectedArgs...)> &method, const ActualArgs &... args) const -> std::enable_if_t< Conjunction< std::is_convertible< const ActualArgs &, const ExpectedArgs & >... >::value >

Protected Member Functions

 Object (std::nullptr_t=nullptr)
 Object (UntaggedType *p)
 Object (const Object &)=delete
Objectoperator= (const Object &)=delete

Member Typedef Documentation

◆ SuperType

template<class TheTag = ObjectTag>
using jni::Object< TheTag >::SuperType = typename TagTraits<TheTag>::SuperType

◆ TagType

template<class TheTag = ObjectTag>
using jni::Object< TheTag >::TagType = TheTag

◆ UntaggedType

template<class TheTag = ObjectTag>
using jni::Object< TheTag >::UntaggedType = typename TagTraits<TheTag>::UntaggedType

Constructor & Destructor Documentation

◆ Object() [1/3]

template<class TheTag = ObjectTag>
jni::Object< TheTag >::Object ( std::nullptr_t = nullptr)
inlineexplicitprotected

◆ Object() [2/3]

template<class TheTag = ObjectTag>
jni::Object< TheTag >::Object ( UntaggedType * p)
inlineexplicitprotected

◆ Object() [3/3]

template<class TheTag = ObjectTag>
jni::Object< TheTag >::Object ( const Object< TheTag > & )
protecteddelete

Member Function Documentation

◆ Call() [1/3]

template<class TheTag = ObjectTag>
template<class R, class... ExpectedArgs, class... ActualArgs>
auto jni::Object< TheTag >::Call ( JNIEnv & env,
const Method< TagType, R(ExpectedArgs...)> & method,
const ActualArgs &... args ) const->std::enable_if_t<!IsPrimitive< R >::value &&!std::is_void< R >::value &&Conjunction< std::is_convertible< constActualArgs &, constExpectedArgs & >... >::value, Local< R > >
inline

◆ Call() [2/3]

template<class TheTag = ObjectTag>
template<class R, class... ExpectedArgs, class... ActualArgs>
auto jni::Object< TheTag >::Call ( JNIEnv & env,
const Method< TagType, R(ExpectedArgs...)> & method,
const ActualArgs &... args ) const->std::enable_if_t< IsPrimitive< R >::value &&Conjunction< std::is_convertible< constActualArgs &, constExpectedArgs & >... >::value, R >
inline

◆ Call() [3/3]

template<class TheTag = ObjectTag>
template<class... ExpectedArgs, class... ActualArgs>
auto jni::Object< TheTag >::Call ( JNIEnv & env,
const Method< TagType, void(ExpectedArgs...)> & method,
const ActualArgs &... args ) const->std::enable_if_t< Conjunction< std::is_convertible< constActualArgs &, constExpectedArgs & >... >::value >
inline

◆ CallNonvirtual() [1/3]

template<class TheTag = ObjectTag>
template<class R, class... ExpectedArgs, class... ActualArgs>
auto jni::Object< TheTag >::CallNonvirtual ( JNIEnv & env,
const Class< TagType > & clazz,
const Method< TagType, R(ExpectedArgs...)> & method,
const ActualArgs &... args ) const->std::enable_if_t<!IsPrimitive< R >::value &&!std::is_void< R >::value &&Conjunction< std::is_convertible< constActualArgs &, constExpectedArgs & >... >::value, Local< R > >
inline

◆ CallNonvirtual() [2/3]

template<class TheTag = ObjectTag>
template<class R, class... ExpectedArgs, class... ActualArgs>
auto jni::Object< TheTag >::CallNonvirtual ( JNIEnv & env,
const Class< TagType > & clazz,
const Method< TagType, R(ExpectedArgs...)> & method,
const ActualArgs &... args ) const->std::enable_if_t< IsPrimitive< R >::value &&Conjunction< std::is_convertible< constActualArgs &, constExpectedArgs & >... >::value, R >
inline

◆ CallNonvirtual() [3/3]

template<class TheTag = ObjectTag>
template<class... ExpectedArgs, class... ActualArgs>
auto jni::Object< TheTag >::CallNonvirtual ( JNIEnv & env,
const Class< TagType > & clazz,
const Method< TagType, void(ExpectedArgs...)> & method,
const ActualArgs &... args ) const->std::enable_if_t< Conjunction< std::is_convertible< constActualArgs &, constExpectedArgs & >... >::value >
inline

◆ Get() [1/2]

template<class TheTag = ObjectTag>
template<class T>
auto jni::Object< TheTag >::Get ( JNIEnv & env,
const Field< TagType, T > & field ) const->std::enable_if_t<!IsPrimitive< T >::value, Local< T > >
inline

◆ Get() [2/2]

template<class TheTag = ObjectTag>
template<class T>
auto jni::Object< TheTag >::Get ( JNIEnv & env,
const Field< TagType, T > & field ) const->std::enable_if_t< IsPrimitive< T >::value, T >
inline

◆ get()

template<class TheTag = ObjectTag>
UntaggedType * jni::Object< TheTag >::get ( ) const
inline

◆ operator*()

template<class TheTag = ObjectTag>
UntaggedType & jni::Object< TheTag >::operator* ( ) const
inline

◆ operator=()

template<class TheTag = ObjectTag>
Object & jni::Object< TheTag >::operator= ( const Object< TheTag > & )
protecteddelete

◆ Set() [1/2]

template<class TheTag = ObjectTag>
template<class Expected, class Actual>
auto jni::Object< TheTag >::Set ( JNIEnv & env,
const Field< TagType, Expected > & field,
const Actual & value ) const->std::enable_if_t<!IsPrimitive< Expected >::value &&std::is_convertible< constActual &, constExpected & >::value >
inline

◆ Set() [2/2]

template<class TheTag = ObjectTag>
template<class T>
auto jni::Object< TheTag >::Set ( JNIEnv & env,
const Field< TagType, T > & field,
T value ) const->std::enable_if_t< IsPrimitive< T >::value >
inline

The documentation for this class was generated from the following file: