v8  8.6.395(node15.0.1)
V8 is Google's open source JavaScript engine
String::ExternalStringResourceBase Class Reference

#include <v8.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


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

Detailed Description

Definition at line 3099 of file v8.h.

Constructor & Destructor Documentation

◆ ~ExternalStringResourceBase()

virtual ~ExternalStringResourceBase ( )

◆ ExternalStringResourceBase() [1/2]

◆ ExternalStringResourceBase() [2/2]

ExternalStringResourceBase ( )

Member Function Documentation

◆ Dispose()

virtual void Dispose ( )

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 3123 of file v8.h.

◆ IsCacheable()

virtual bool IsCacheable ( ) const

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 3108 of file v8.h.

◆ Lock()

virtual void Lock ( ) const

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 3136 of file v8.h.

◆ operator=()

void operator= ( const ExternalStringResourceBase )

◆ Unlock()

virtual void Unlock ( ) const

Unlocks the string.

Definition at line 3141 of file v8.h.

Friends And Related Function Documentation

◆ internal::ExternalString

friend class internal::ExternalString

Definition at line 3144 of file v8.h.

◆ internal::ScopedExternalStringLock

friend class internal::ScopedExternalStringLock

Definition at line 3146 of file v8.h.

◆ v8::String

friend class v8::String

Definition at line 3145 of file v8.h.

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