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:
- include/v8-local-handle.h
- include/v8-persistent-handle.h
Public Member Functions inherited from