V8: v8::Persistent< T, M > Class Template Reference (original) (raw)

#include <[v8-persistent-handle.h](v8-persistent-handle%5F8h%5Fsource.html)>

Public Member Functions
Persistent ()=default
template requires (std::is_base_of_v<T, S>)
Persistent (Isolate *isolate, Local< S > that)
template<class S , class M2 > requires (std::is_base_of_v<T, S>)
Persistent (Isolate *isolate, const Persistent< S, M2 > &that)
Persistent (const Persistent &that)
template<class S , class M2 >
Persistent (const Persistent< S, M2 > &that)
Persistent & operator= (const Persistent &that)
template<class S , class M2 >
Persistent & operator= (const Persistent< S, M2 > &that)
~Persistent ()
template<class S , class M2 >
Persistent< S, M2 > & As () const
- Public Member Functions inherited from v8::PersistentBase< T >
void Reset ()
template
void Reset (Isolate *isolate, const Local< S > &other)
template
void Reset (Isolate *isolate, const PersistentBase< S > &other)
Local< T > Get (Isolate *isolate) const
template
bool operator== (const PersistentBase< S > &that) const
template
bool operator== (const Local< S > &that) const
template
bool operator!= (const PersistentBase< S > &that) const
template
bool operator!= (const Local< S > &that) const
template
void SetWeak (P *parameter, typename WeakCallbackInfo< P >::Callback callback, WeakCallbackType type)
void SetWeak ()
template
P * ClearWeak ()
void ClearWeak ()
void AnnotateStrongRetainer (const char *label)
bool IsWeak () const
void SetWrapperClassId (uint16_t class_id)
uint16_t WrapperClassId () const
PersistentBase (const PersistentBase &other)=delete
void operator= (const PersistentBase &)=delete
- Public Member Functions inherited from v8::api_internal::IndirectHandleBase
bool IsEmpty () const
void Clear ()
Static Public Member Functions
template<class S , class M2 >
static Persistent< T, M > & Cast (const Persistent< S, M2 > &that)
Friends
class Isolate
class Utils
template
class Local
template<class F1 , class F2 >
class Persistent
template
class ReturnValue
Additional Inherited Members
- Protected Member Functions inherited from v8::api_internal::IndirectHandleBase
IndirectHandleBase ()=default
IndirectHandleBase (const IndirectHandleBase &other)=default
IndirectHandleBase & operator= (const IndirectHandleBase &that)=default
IndirectHandleBase (internal::Address *location)
internal::Address ptr () const
internal::Address *const & slot () const
internal::Address *& slot ()
template<typename T , bool check_null = false>
T * value () const
internal::ValueHelper::InternalRepresentationType repr () const

template<class T, class M>
class v8::Persistent< T, M >

A PersistentBase which allows copy and assignment.

Copy, assignment and destructor behavior is controlled by the traits class M.

CAVEAT: Persistent objects do not have proper destruction behavior by default and as such will leak the object without explicit clear. Consider using [v8::Global](classv8%5F1%5F1Global.html) instead which has proper destruction and move semantics.

template<class T , class M >

Persistent() [2/5]

template<class T , class M >

template
requires (std::is_base_of_v<T, S>)

Construct a Persistent from a Local with automatic up casting. When the Local is non-empty, a new storage cell is created pointing to the same object, and no flags are set.

Persistent() [3/5]

template<class T , class M >

template<class S , class M2 >
requires (std::is_base_of_v<T, S>)

Construct a Persistent from a Persistent with automatic up casting. When the Persistent is non-empty, a new storage cell is created pointing to the same object, and no flags are set.

Persistent() [4/5]

template<class T , class M >

The copy constructors and assignment operator create a Persistent exactly as the Persistent constructor, but the Copy function from the traits class is called, allowing the setting of flags based on the copied Persistent.

Persistent() [5/5]

template<class T , class M >

template<class S , class M2 >

~Persistent()

template<class T , class M >

The destructor will dispose the Persistent based on the kResetInDestructor flags in the traits class. Since not calling dispose can result in a memory leak, it is recommended to always set this flag.

As()

template<class T , class M >

template<class S , class M2 >

Cast()

template<class T , class M >

template<class S , class M2 >

operator=() [1/2]

template<class T , class M >

operator=() [2/2]

template<class T , class M >

template<class S , class M2 >

Isolate

template<class T , class M >

Local

template<class T , class M >

template

Persistent

template<class T , class M >

template<class F1 , class F2 >

Persistent is a way to create a strong pointer from an off-heap object to another on-heap object. As long as the Persistent handle is alive the GC will keep the object pointed to alive. The Persistent handle is always a GC root from the point of view of the GC. Persistent must be constructed and destructed in the same thread.

ReturnValue

template<class T , class M >

template

Utils

template<class T , class M >


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