10 template <
class TheTag,
class... >
class Constructor;
11 template <
class TheTag,
class >
class Field;
13 template <
class TheTag,
class >
class Method;
16 template <
class TheTag >
25 explicit Class(std::nullptr_t =
nullptr)
36 template <
class... ExpectedArgs,
class... ActualArgs >
38 -> std::enable_if_t< Conjunction<std::is_convertible<const ActualArgs&, const ExpectedArgs&>...>::value,
Local<Object<TagType>> >
45 -> std::enable_if_t< IsPrimitive<T>::value, T >
52 -> std::enable_if_t< !IsPrimitive<T>::value,
Local<T> >
59 -> std::enable_if_t< IsPrimitive<T>::value >
64 template <
class Expected,
class Actual >
66 -> std::enable_if_t< !IsPrimitive<Expected>::value
67 && std::is_convertible<const Actual&, const Expected&>::value >
72 template <
class R,
class... ExpectedArgs,
class... ActualArgs >
74 -> std::enable_if_t< IsPrimitive<R>::value
80 template <
class R,
class... ExpectedArgs,
class... ActualArgs >
82 -> std::enable_if_t< !IsPrimitive<R>::value
83 && !std::is_void<R>::value
89 template <
class... ExpectedArgs,
class... ActualArgs >
91 -> std::enable_if_t< Conjunction<std::is_convertible<const ActualArgs&, const ExpectedArgs&>...>::value >
107 template <
class... Args >
auto Set(JNIEnv &env, const StaticField< TagType, T > &field, T value) const -> std::enable_if_t< IsPrimitive< T >::value >
Definition class.hpp:58
StaticField< TagType, T > GetStaticField(JNIEnv &env, const char *name) const
Definition class.hpp:120
Class(UntaggedType *p)
Definition class.hpp:28
auto Get(JNIEnv &env, const StaticField< TagType, T > &field) const -> std::enable_if_t< !IsPrimitive< T >::value, Local< T > >
Definition class.hpp:51
Method< TagType, T > GetMethod(JNIEnv &env, const char *name) const
Definition class.hpp:126
Class(const Class &)=delete
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 >
Definition class.hpp:90
static Local< Class > Find(JNIEnv &env)
Definition class.hpp:96
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 >
Definition class.hpp:73
Constructor< TagType, Args... > GetConstructor(JNIEnv &env) const
Definition class.hpp:108
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 >
Definition class.hpp:65
Field< TagType, T > GetField(JNIEnv &env, const char *name) const
Definition class.hpp:114
auto Get(JNIEnv &env, const StaticField< TagType, T > &field) const -> std::enable_if_t< IsPrimitive< T >::value, T >
Definition class.hpp:44
Class(std::nullptr_t=nullptr)
Definition class.hpp:25
jclass UntaggedType
Definition class.hpp:22
StaticMethod< TagType, T > GetStaticMethod(JNIEnv &env, const char *name) const
Definition class.hpp:132
Class & operator=(const Class &)=delete
TheTag TagType
Definition class.hpp:20
Object< ClassTag > SuperType
Definition class.hpp:21
static const Class & Singleton(JNIEnv &env)
Definition class.hpp:101
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 > >
Definition class.hpp:81
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 > > >
Definition class.hpp:37
Definition constructor.hpp:9
UntaggedType * get() const
Definition object.hpp:63
Object(std::nullptr_t=nullptr)
Definition object.hpp:52
Definition static_field.hpp:13
Definition advanced_ownership.hpp:6
jobject & NewObject(JNIEnv &env, jclass &clazz, jmethodID &method, Args &&... args)
Definition functions.hpp:241
std::enable_if_t<!std::is_void< R >::value, R > CallStaticMethod(JNIEnv &env, jclass &clazz, jmethodID &method, Args &&... args)
Definition functions.hpp:328
jclass & FindClass(JNIEnv &env, const char *name)
Definition functions.hpp:34
Unique< T, Deleter<&JNIEnv::DeleteGlobalRef > > Global
Definition unique.hpp:102
void SetStaticField(JNIEnv &env, jclass &clazz, jfieldID &field, T value)
Definition functions.hpp:357
T GetStaticField(JNIEnv &env, jclass &clazz, jfieldID &field)
Definition functions.hpp:350
auto NewGlobal(JNIEnv &env, const T &t)
Definition unique.hpp:156
Unique< T, DefaultRefDeleter<&JNIEnv::DeleteLocalRef > > Local
Definition unique.hpp:110
auto Untag(T primitive) -> std::enable_if_t< IsPrimitive< T >::value, T >
Definition tagging.hpp:116