v8  10.1.124 (node 18.2.0)
V8 is Google's open source JavaScript engine
String::ExternalStringResourceBase Class Reference

#include <v8-primitive.h>

Inheritance diagram for String::ExternalStringResourceBase:

Public Member Functions

virtual ~ExternalStringResourceBase ()=default
 
virtual bool IsCacheable () const
 
 ExternalStringResourceBase (const ExternalStringResourceBase &)=delete
 
void operator= (const ExternalStringResourceBase &)=delete
 

Protected Member Functions

 ExternalStringResourceBase ()=default
 
virtual void Dispose ()
 
virtual void Lock () const
 
virtual void Unlock () const
 

Friends

class internal::ExternalString
 
class v8::String
 
class internal::ScopedExternalStringLock
 

Detailed Description

Definition at line 225 of file v8-primitive.h.

Constructor & Destructor Documentation

◆ ~ExternalStringResourceBase()

virtual ~ExternalStringResourceBase ( )
virtualdefault

◆ ExternalStringResourceBase() [1/2]

◆ ExternalStringResourceBase() [2/2]

ExternalStringResourceBase ( )
protecteddefault

Member Function Documentation

◆ Dispose()

virtual void Dispose ( )
inlineprotectedvirtual

Internally V8 will call this Dispose method when the external string resource is no longer needed. The default implementation will use the delete operator. This method can be overridden in subclasses to control how allocated external string resources are disposed.

Definition at line 249 of file v8-primitive.h.

◆ IsCacheable()

virtual bool IsCacheable ( ) const
inlinevirtual

If a string is cacheable, the value returned by ExternalStringResource::data() may be cached, otherwise it is not expected to be stable beyond the current top-level task.

Definition at line 234 of file v8-primitive.h.

◆ Lock()

virtual void Lock ( ) const
inlineprotectedvirtual

For a non-cacheable string, the value returned by |ExternalStringResource::data()| has to be stable between |Lock()| and |Unlock()|, that is the string must behave as is |IsCacheable()| returned true.

These two functions must be thread-safe, and can be called from anywhere. They also must handle lock depth, in the sense that each can be called several times, from different threads, and unlocking should only happen when the balance of Lock() and Unlock() calls is 0.

Definition at line 262 of file v8-primitive.h.

◆ operator=()

void operator= ( const ExternalStringResourceBase )
delete

◆ Unlock()

virtual void Unlock ( ) const
inlineprotectedvirtual

Unlocks the string.

Definition at line 267 of file v8-primitive.h.

Friends And Related Function Documentation

◆ internal::ExternalString

friend class internal::ExternalString
friend

Definition at line 270 of file v8-primitive.h.

◆ internal::ScopedExternalStringLock

friend class internal::ScopedExternalStringLock
friend

Definition at line 272 of file v8-primitive.h.

◆ v8::String

friend class v8::String
friend

Definition at line 271 of file v8-primitive.h.


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