37 template <
class T,
class D >
38 class Unique :
public T
43 Unique(
const Unique&) =
delete;
44 Unique& operator=(
const Unique&) =
delete;
50 explicit Unique(std::nullptr_t ptr =
nullptr)
63 Unique(Unique<U, D>&& other, std::enable_if_t<std::is_convertible<const U&, const T&>::value>* =
nullptr)
74 reset(other.release());
75 deleter = std::move(other.deleter);
101 template <
class T,
template < RefDeletionMethod >
class Deleter = DefaultRefDeleter >
104 template <
class T,
template < RefDeletionMethod >
class Deleter =
DefaultRefDeleter >
132 template <
class T,
class D >
148 template <
class T,
class D >
155 template <
template < RefDeletionMethod >
class Deleter,
class T >
173 template <
template < RefDeletionMethod >
class Deleter,
class T,
template < RefDeletionMethod >
class WeakDeleter >
188 template <
template < RefDeletionMethod >
class Deleter,
class T >
213 template <
class T,
template < RefDeletionMethod >
class WeakDeleter >
Definition ownership.hpp:27
typename T::UntaggedType UntaggedType
Definition unique.hpp:48
Unique(JNIEnv &env, UntaggedType *ptr)
Definition unique.hpp:54
Unique(std::nullptr_t ptr=nullptr)
Definition unique.hpp:50
T Base
Definition unique.hpp:47
Unique(Unique< U, D > &&other, std::enable_if_t< std::is_convertible< const U &, const T & >::value > *=nullptr)
Definition unique.hpp:63
Unique(Unique &&other)
Definition unique.hpp:58
Unique & operator=(Unique &&other)
Definition unique.hpp:72
const D & get_deleter() const
Definition unique.hpp:97
UntaggedType * release()
Definition unique.hpp:89
~Unique()
Definition unique.hpp:67
Deleter<&JNIEnv::DeleteGlobalRef > & get_deleter()
Definition unique.hpp:96
void reset(UntaggedType *ptr=nullptr)
Definition unique.hpp:79
Definition advanced_ownership.hpp:6
UniqueGlobalRef< T, Deleter > NewGlobalRef(JNIEnv &env, T *t)
Definition functions.hpp:132
UniqueWeakGlobalRef< T, Deleter > NewWeakGlobalRef(JNIEnv &env, T *t)
Definition functions.hpp:205
R CheckJavaException(JNIEnv &env, R &&r)
Definition errors.hpp:61
Unique< T, Deleter<&JNIEnv::DeleteGlobalRef > > Global
Definition unique.hpp:102
auto NewLocal(JNIEnv &env, const T &t)
Definition unique.hpp:202
auto ReleaseUnique(T primitive)
Definition unique.hpp:143
auto NewWeak(JNIEnv &env, const T &t)
Definition unique.hpp:189
Unique< T, NullDeleter > Input
Definition unique.hpp:123
auto Wrap(U &&u)
Definition wrapping.hpp:16
Unique< T, Deleter<&JNIEnv::DeleteWeakGlobalRef > > Weak
Definition unique.hpp:105
auto Unwrap(W &&w)
Definition wrapping.hpp:22
UniqueLocalRef< T > NewLocalRef(JNIEnv &env, T *t)
Definition functions.hpp:172
typename RemoveUnique< T >::Type RemoveUniqueType
Definition unique.hpp:139
auto NewGlobal(JNIEnv &env, const T &t)
Definition unique.hpp:156
Unique< T, DefaultRefDeleter<&JNIEnv::DeleteLocalRef > > Local
Definition unique.hpp:110
NullDeleter(JNIEnv &)
Definition unique.hpp:118
void operator()(jobject *) const
Definition unique.hpp:119
T Type
Definition unique.hpp:135
Definition unique.hpp:128
T Type
Definition unique.hpp:129