lime
Lime is a C++ library implementing Open Whisper System Signal protocol
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
jni::Class< TheTag > Class Template Reference
Inheritance diagram for jni::Class< TheTag >:
jni::Object< ClassTag > jni::Object< TheTag >

Public Types

using TagType = TheTag
 
using SuperType = Object< ClassTag >
 
using UntaggedType = jclass
 
- Public Types inherited from jni::Object< ClassTag >
using TagType = ClassTag
 
using SuperType = typename TagTraits< ClassTag >::SuperType
 
using UntaggedType = typename TagTraits< ClassTag >::UntaggedType
 
- Public Types inherited from jni::Object< TheTag >
using TagType = TheTag
 
using SuperType = typename TagTraits< TheTag >::SuperType
 
using UntaggedType = typename TagTraits< TheTag >::UntaggedType
 

Public Member Functions

template<class... ExpectedArgs, class... ActualArgs>
auto New (JNIEnv &env, const Constructor< TagType, ExpectedArgs... > &method, const ActualArgs &... args) const -> std::enable_if_t< Conjunction< std::is_convertible< const ActualArgs &, const ExpectedArgs &>... >::value, Local< Object< TagType >> >
 
template<class T >
auto Get (JNIEnv &env, const StaticField< TagType, T > &field) const -> std::enable_if_t< IsPrimitive< T >::value, T >
 
template<class T >
auto Get (JNIEnv &env, const StaticField< TagType, T > &field) const -> std::enable_if_t< !IsPrimitive< T >::value, Local< T > >
 
template<class T >
auto Set (JNIEnv &env, const StaticField< TagType, T > &field, T value) const -> std::enable_if_t< IsPrimitive< T >::value >
 
template<class Expected , class Actual >
auto Set (JNIEnv &env, const StaticField< 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 StaticMethod< 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 StaticMethod< 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 StaticMethod< TagType, void(ExpectedArgs...)> &method, const ActualArgs &... args) const -> std::enable_if_t< Conjunction< std::is_convertible< const ActualArgs &, const ExpectedArgs &>... >::value >
 
template<class... Args>
Constructor< TagType, Args... > GetConstructor (JNIEnv &env) const
 
template<class T >
Field< TagType, T > GetField (JNIEnv &env, const char *name) const
 
template<class T >
StaticField< TagType, T > GetStaticField (JNIEnv &env, const char *name) const
 
template<class T >
Method< TagType, T > GetMethod (JNIEnv &env, const char *name) const
 
template<class T >
StaticMethod< TagType, T > GetStaticMethod (JNIEnv &env, const char *name) const
 
- Public Member Functions inherited from jni::Object< ClassTag >
UntaggedTypeget () const
 
UntaggedTypeoperator* () const
 
auto Get (JNIEnv &env, const Field< TagType, T > &field) const -> std::enable_if_t< IsPrimitive< T >::value, T >
 
auto Get (JNIEnv &env, const Field< TagType, T > &field) const -> std::enable_if_t< !IsPrimitive< T >::value, Local< T > >
 
auto Set (JNIEnv &env, const Field< TagType, T > &field, T value) const -> std::enable_if_t< IsPrimitive< T >::value >
 
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 >
 
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 >
 
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 > >
 
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 >
 
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 >
 
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 > >
 
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 >
 
- Public Member Functions inherited from jni::Object< TheTag >
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 >
 

Static Public Member Functions

static Local< ClassFind (JNIEnv &env)
 
static const ClassSingleton (JNIEnv &env)
 

Protected Member Functions

 Class (std::nullptr_t=nullptr)
 
 Class (UntaggedType *p)
 
 Class (const Class &)=delete
 
Classoperator= (const Class &)=delete
 
- Protected Member Functions inherited from jni::Object< ClassTag >
 Object (std::nullptr_t=nullptr)
 
 Object (UntaggedType *p)
 
 Object (const Object &)=delete
 
Objectoperator= (const Object &)=delete
 
- Protected Member Functions inherited from jni::Object< TheTag >
 Object (std::nullptr_t=nullptr)
 
 Object (UntaggedType *p)
 
 Object (const Object &)=delete
 
Objectoperator= (const Object &)=delete
 

Member Typedef Documentation

◆ SuperType

template<class TheTag>
using jni::Class< TheTag >::SuperType = Object<ClassTag>

◆ TagType

template<class TheTag>
using jni::Class< TheTag >::TagType = TheTag

◆ UntaggedType

template<class TheTag>
using jni::Class< TheTag >::UntaggedType = jclass

Constructor & Destructor Documentation

◆ Class() [1/3]

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

◆ Class() [2/3]

template<class TheTag>
jni::Class< TheTag >::Class ( UntaggedType p)
inlineexplicitprotected

◆ Class() [3/3]

template<class TheTag>
jni::Class< TheTag >::Class ( const Class< TheTag > &  )
protecteddelete

Member Function Documentation

◆ Call() [1/3]

template<class TheTag>
template<class R , class... ExpectedArgs, class... ActualArgs>
auto jni::Class< TheTag >::Call ( JNIEnv &  env,
const StaticMethod< 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 >
inline

◆ Call() [2/3]

template<class TheTag>
template<class R , class... ExpectedArgs, class... ActualArgs>
auto jni::Class< TheTag >::Call ( JNIEnv &  env,
const StaticMethod< 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> >
inline

◆ Call() [3/3]

template<class TheTag>
template<class... ExpectedArgs, class... ActualArgs>
auto jni::Class< TheTag >::Call ( JNIEnv &  env,
const StaticMethod< TagType, void(ExpectedArgs...)> &  method,
const ActualArgs &...  args 
) const -> std::enable_if_t< Conjunction<std::is_convertible<const ActualArgs&, const ExpectedArgs&>...>::value >
inline

◆ Find()

template<class TheTag>
static Local<Class> jni::Class< TheTag >::Find ( JNIEnv &  env)
inlinestatic

◆ Get() [1/2]

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

◆ Get() [2/2]

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

◆ GetConstructor()

template<class TheTag>
template<class... Args>
Constructor<TagType, Args...> jni::Class< TheTag >::GetConstructor ( JNIEnv &  env) const
inline

◆ GetField()

template<class TheTag>
template<class T >
Field<TagType, T> jni::Class< TheTag >::GetField ( JNIEnv &  env,
const char *  name 
) const
inline

◆ GetMethod()

template<class TheTag>
template<class T >
Method<TagType, T> jni::Class< TheTag >::GetMethod ( JNIEnv &  env,
const char *  name 
) const
inline

◆ GetStaticField()

template<class TheTag>
template<class T >
StaticField<TagType, T> jni::Class< TheTag >::GetStaticField ( JNIEnv &  env,
const char *  name 
) const
inline

◆ GetStaticMethod()

template<class TheTag>
template<class T >
StaticMethod<TagType, T> jni::Class< TheTag >::GetStaticMethod ( JNIEnv &  env,
const char *  name 
) const
inline

◆ New()

template<class TheTag>
template<class... ExpectedArgs, class... ActualArgs>
auto jni::Class< TheTag >::New ( JNIEnv &  env,
const Constructor< TagType, ExpectedArgs... > &  method,
const ActualArgs &...  args 
) const -> std::enable_if_t< Conjunction<std::is_convertible<const ActualArgs&, const ExpectedArgs&>...>::value, Local<Object<TagType>> >
inline

◆ operator=()

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

◆ Set() [1/2]

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

◆ Set() [2/2]

template<class TheTag>
template<class Expected , class Actual >
auto jni::Class< TheTag >::Set ( JNIEnv &  env,
const StaticField< TagType, Expected > &  field,
const Actual &  value 
) const -> std::enable_if_t< !IsPrimitive<Expected>::value && std::is_convertible<const Actual&, const Expected&>::value >
inline

◆ Singleton()

template<class TheTag>
static const Class& jni::Class< TheTag >::Singleton ( JNIEnv &  env)
inlinestatic

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