v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
v8::String::ExternalStringResource Class Referenceabstract

#include <v8-primitive.h>

Inheritance diagram for v8::String::ExternalStringResource:
Collaboration diagram for v8::String::ExternalStringResource:

Public Member Functions

 ~ExternalStringResource () override=default
 
virtual const uint16_t * data () const =0
 
virtual size_t length () const =0
 
const uint16_t * cached_data () const
 
void UpdateDataCache ()
 
- Public Member Functions inherited from v8::String::ExternalStringResourceBase
virtual ~ExternalStringResourceBase ()=default
 
virtual bool IsCacheable () const
 
virtual void Unaccount (Isolate *isolate)
 
virtual size_t EstimateMemoryUsage () const
 
virtual void EstimateSharedMemoryUsage (SharedMemoryUsageRecorder *recorder) const
 
 ExternalStringResourceBase (const ExternalStringResourceBase &)=delete
 
void operator= (const ExternalStringResourceBase &)=delete
 

Protected Member Functions

 ExternalStringResource ()=default
 
- Protected Member Functions inherited from v8::String::ExternalStringResourceBase
 ExternalStringResourceBase ()=default
 
virtual void Dispose ()
 
virtual void Lock () const
 
virtual void Unlock () const
 

Private Member Functions

void CheckCachedDataInvariants () const
 

Private Attributes

const uint16_t * cached_data_ = nullptr
 

Additional Inherited Members

- Static Public Attributes inherited from v8::String::ExternalStringResourceBase
static constexpr size_t kDefaultMemoryEstimate = static_cast<size_t>(-1)
 

Detailed Description

An ExternalStringResource is a wrapper around a two-byte string buffer that resides outside V8's heap. Implement an ExternalStringResource to manage the life cycle of the underlying buffer. Note that the string data must be immutable.

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

Constructor & Destructor Documentation

◆ ~ExternalStringResource()

v8::String::ExternalStringResource::~ExternalStringResource ( )
overridedefault

Override the destructor to manage the life cycle of the underlying buffer.

◆ ExternalStringResource()

v8::String::ExternalStringResource::ExternalStringResource ( )
protecteddefault

Member Function Documentation

◆ cached_data()

const uint16_t * v8::String::ExternalStringResource::cached_data ( ) const
inline

Returns the cached data from the underlying buffer. This method can be called only for cacheable resources (i.e. IsCacheable() == true) and only after UpdateDataCache() was called.

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

◆ CheckCachedDataInvariants()

void v8::String::ExternalStringResource::CheckCachedDataInvariants ( ) const
private

Definition at line 6154 of file api.cc.

◆ data()

virtual const uint16_t * v8::String::ExternalStringResource::data ( ) const
pure virtual

The string data from the underlying buffer. If the resource is cacheable then data() must return the same value for all invocations.

Here is the caller graph for this function:

◆ length()

virtual size_t v8::String::ExternalStringResource::length ( ) const
pure virtual

The length of the string. That is, the number of two-byte characters.

Here is the caller graph for this function:

◆ UpdateDataCache()

void v8::String::ExternalStringResource::UpdateDataCache ( )

Update {cached_data_} with the data from the underlying buffer. This can be called only for cacheable resources.

Definition at line 6149 of file api.cc.

Here is the call graph for this function:

Member Data Documentation

◆ cached_data_

const uint16_t* v8::String::ExternalStringResource::cached_data_ = nullptr
private

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


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