v8  7.8.279(node12.19.0)
V8 is Google's open source JavaScript engine
TracedGlobal< T > Class Template Reference

#include <v8.h>

Public Member Functions

 TracedGlobal ()=default
 
template<class S >
 TracedGlobal (Isolate *isolate, Local< S > that)
 
V8_INLINE TracedGlobal (TracedGlobal &&other)
 
template<typename S >
V8_INLINE TracedGlobal (TracedGlobal< S > &&other)
 
V8_INLINE TracedGlobal (const TracedGlobal &other)
 
template<typename S >
V8_INLINE TracedGlobal (const TracedGlobal< S > &other)
 
V8_INLINE TracedGlobaloperator= (TracedGlobal &&rhs)
 
template<class S >
V8_INLINE TracedGlobaloperator= (TracedGlobal< S > &&rhs)
 
V8_INLINE TracedGlobaloperator= (const TracedGlobal &rhs)
 
template<class S >
V8_INLINE TracedGlobaloperator= (const TracedGlobal< S > &rhs)
 
bool IsEmpty () const
 
V8_INLINE void Reset ()
 
template<class S >
V8_INLINE void Reset (Isolate *isolate, const Local< S > &other)
 
Local< T > Get (Isolate *isolate) const
 
template<class S >
V8_INLINE TracedGlobal< S > & As () const
 
template<class S >
V8_INLINE bool operator== (const TracedGlobal< S > &that) const
 
template<class S >
V8_INLINE bool operator== (const Local< S > &that) const
 
template<class S >
V8_INLINE bool operator!= (const TracedGlobal< S > &that) const
 
template<class S >
V8_INLINE bool operator!= (const Local< S > &that) const
 
V8_INLINE void SetWrapperClassId (uint16_t class_id)
 
V8_INLINE uint16_t WrapperClassId () const
 
V8_INLINE void SetFinalizationCallback (void *parameter, WeakCallbackInfo< void >::Callback callback)
 
template<class S >
void Reset (Isolate *isolate, const Local< S > &other)
 
template<class S >
TracedGlobal< T > & operator= (TracedGlobal< S > &&rhs)
 
template<class S >
TracedGlobal< T > & operator= (const TracedGlobal< S > &rhs)
 

Friends

class EmbedderHeapTracer
 
template<typename F >
class Local
 
class Object
 
template<typename F >
class ReturnValue
 

Detailed Description

template<typename T>
class v8::TracedGlobal< T >

A traced handle with copy and move semantics. The handle is to be used together with |v8::EmbedderHeapTracer| and specifies edges from the embedder into V8's heap.

The exact semantics are:

  • Tracing garbage collections use |v8::EmbedderHeapTracer|.
  • Non-tracing garbage collections refer to |v8::EmbedderHeapTracer::IsRootForNonTracingGC()| whether the handle should be treated as root or not.

For destruction semantics see |TracedGlobalTrait<T>|.

Definition at line 98 of file v8.h.

Constructor & Destructor Documentation

◆ TracedGlobal() [1/6]

TracedGlobal ( )
default

An empty TracedGlobal without storage cell.

◆ TracedGlobal() [2/6]

TracedGlobal ( Isolate isolate,
Local< S >  that 
)
inline

Construct a TracedGlobal from a Local.

When the Local is non-empty, a new storage cell is created pointing to the same object.

Definition at line 840 of file v8.h.

◆ TracedGlobal() [3/6]

V8_INLINE TracedGlobal ( TracedGlobal< T > &&  other)
inline

Move constructor initializing TracedGlobal from an existing one.

Definition at line 848 of file v8.h.

◆ TracedGlobal() [4/6]

V8_INLINE TracedGlobal ( TracedGlobal< S > &&  other)
inline

Move constructor initializing TracedGlobal from an existing one.

Definition at line 857 of file v8.h.

◆ TracedGlobal() [5/6]

V8_INLINE TracedGlobal ( const TracedGlobal< T > &  other)
inline

Copy constructor initializing TracedGlobal from an existing one.

Definition at line 865 of file v8.h.

◆ TracedGlobal() [6/6]

V8_INLINE TracedGlobal ( const TracedGlobal< S > &  other)
inline

Copy constructor initializing TracedGlobal from an existing one.

Definition at line 874 of file v8.h.

Member Function Documentation

◆ As()

V8_INLINE TracedGlobal<S>& As ( ) const
inline

Definition at line 932 of file v8.h.

References V8::TracedGlobal.

◆ Get()

Local<T> Get ( Isolate isolate) const
inline

Construct a Local<T> from this handle.

Definition at line 929 of file v8.h.

References V8::Local.

◆ IsEmpty()

bool IsEmpty ( ) const
inline

Returns true if this TracedGlobal is empty, i.e., has not been assigned an object.

Definition at line 911 of file v8.h.

Referenced by TracedGlobal< T >::Reset(), TracedGlobal< T >::SetWrapperClassId(), and TracedGlobal< T >::WrapperClassId().

◆ operator!=() [1/2]

V8_INLINE bool operator!= ( const Local< S > &  that) const
inline

Definition at line 961 of file v8.h.

◆ operator!=() [2/2]

V8_INLINE bool operator!= ( const TracedGlobal< S > &  that) const
inline

Definition at line 956 of file v8.h.

◆ operator=() [1/6]

TracedGlobal< T > & operator= ( const TracedGlobal< T > &  rhs)

Copy assignment operator initializing TracedGlobal from an existing one.

Note: Prohibited when |other| has a finalization callback set through |SetFinalizationCallback|.

Definition at line 10223 of file v8.h.

◆ operator=() [2/6]

V8_INLINE TracedGlobal& operator= ( const TracedGlobal< S > &  rhs)

Copy assignment operator initializing TracedGlobal from an existing one.

Note: Prohibited when |other| has a finalization callback set through |SetFinalizationCallback|.

◆ operator=() [3/6]

TracedGlobal<T>& operator= ( const TracedGlobal< S > &  rhs)

Definition at line 10201 of file v8.h.

◆ operator=() [4/6]

TracedGlobal< T > & operator= ( TracedGlobal< T > &&  rhs)

Move assignment operator initializing TracedGlobal from an existing one.

Definition at line 10208 of file v8.h.

◆ operator=() [5/6]

V8_INLINE TracedGlobal& operator= ( TracedGlobal< S > &&  rhs)

Move assignment operator initializing TracedGlobal from an existing one.

◆ operator=() [6/6]

TracedGlobal<T>& operator= ( TracedGlobal< S > &&  rhs)

Definition at line 10193 of file v8.h.

◆ operator==() [1/2]

V8_INLINE bool operator== ( const Local< S > &  that) const
inline

Definition at line 947 of file v8.h.

◆ operator==() [2/2]

V8_INLINE bool operator== ( const TracedGlobal< S > &  that) const
inline

Definition at line 938 of file v8.h.

◆ Reset() [1/3]

void Reset

If non-empty, destroy the underlying storage cell. |IsEmpty| will return true after this call.

Definition at line 10176 of file v8.h.

References TracedGlobal< T >::IsEmpty().

◆ Reset() [2/3]

V8_INLINE void Reset ( Isolate isolate,
const Local< S > &  other 
)

If non-empty, destroy the underlying storage cell and create a new one with the contents of other if other is non empty

◆ Reset() [3/3]

void Reset ( Isolate isolate,
const Local< S > &  other 
)

Definition at line 10184 of file v8.h.

◆ SetFinalizationCallback()

void SetFinalizationCallback ( void *  parameter,
WeakCallbackInfo< void >::Callback  callback 
)

Adds a finalization callback to the handle. The type of this callback is similar to WeakCallbackType::kInternalFields, i.e., it will pass the parameter and the first two internal fields of the object.

The callback is then supposed to reset the handle in the callback. No further V8 API may be called in this callback. In case additional work involving V8 needs to be done, a second callback can be scheduled using WeakCallbackInfo<void>::SetSecondPassCallback.

Definition at line 10254 of file v8.h.

◆ SetWrapperClassId()

void SetWrapperClassId ( uint16_t  class_id)

Assigns a wrapper class ID to the handle.

Definition at line 10236 of file v8.h.

References TracedGlobal< T >::IsEmpty(), and Internals::kNodeClassIdOffset.

◆ WrapperClassId()

uint16_t WrapperClassId

Returns the class ID previously assigned to this handle or 0 if no class ID was previously assigned.

Definition at line 10245 of file v8.h.

References TracedGlobal< T >::IsEmpty(), and Internals::kNodeClassIdOffset.

Friends And Related Function Documentation

◆ EmbedderHeapTracer

friend class EmbedderHeapTracer
friend

Definition at line 1017 of file v8.h.

◆ Local

friend class Local
friend

Definition at line 1019 of file v8.h.

◆ Object

friend class Object
friend

Definition at line 1020 of file v8.h.

◆ ReturnValue

friend class ReturnValue
friend

Definition at line 1022 of file v8.h.


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