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

#include <default-platform.h>

Inheritance diagram for DefaultPlatform:
Collaboration diagram for DefaultPlatform:

Public Types

using IdleTaskSupport = v8::platform::IdleTaskSupport
 

Public Member Functions

 DefaultPlatform (int thread_pool_size=0, IdleTaskSupport idle_task_support=IdleTaskSupport::kDisabled, std::unique_ptr< TracingController > tracing_controller={})
 
cppgc::PageAllocatorGetPageAllocator () override
 
double MonotonicallyIncreasingTime () override
 
std::shared_ptr< cppgc::TaskRunnerGetForegroundTaskRunner () override
 
std::unique_ptr< cppgc::JobHandlePostJob (cppgc::TaskPriority priority, std::unique_ptr< cppgc::JobTask > job_task) override
 
TracingControllerGetTracingController () override
 
v8::PlatformGetV8Platform () const
 
- Public Member Functions inherited from Platform
virtual ~Platform ()=default
 
virtual std::unique_ptr< JobHandlePostJob (TaskPriority priority, std::unique_ptr< JobTask > job_task)
 

Static Public Member Functions

static void InitializeProcess (DefaultPlatform *platform)
 

Protected Attributes

std::unique_ptr< v8::Platformv8_platform_
 

Static Protected Attributes

static constexpr v8::IsolatekNoIsolate = nullptr
 

Detailed Description

Platform provided by cppgc. Uses V8's DefaultPlatform provided by libplatform internally. Exception: GetForegroundTaskRunner(), see below.

Definition at line 20 of file default-platform.h.

Member Typedef Documentation

◆ IdleTaskSupport

Constructor & Destructor Documentation

◆ DefaultPlatform()

DefaultPlatform ( int  thread_pool_size = 0,
IdleTaskSupport  idle_task_support = IdleTaskSupport::kDisabled,
std::unique_ptr< TracingController tracing_controller = {} 
)
inlineexplicit

Definition at line 32 of file default-platform.h.

Member Function Documentation

◆ GetForegroundTaskRunner()

std::shared_ptr<cppgc::TaskRunner> GetForegroundTaskRunner ( )
inlineoverridevirtual

Foreground task runner that should be used by a Heap.

Reimplemented from Platform.

Definition at line 49 of file default-platform.h.

References Platform::GetForegroundTaskRunner(), DefaultPlatform::kNoIsolate, and DefaultPlatform::v8_platform_.

◆ GetPageAllocator()

cppgc::PageAllocator* GetPageAllocator ( )
inlineoverridevirtual

Returns the allocator used by cppgc to allocate its heap and various support structures.

Implements Platform.

Definition at line 41 of file default-platform.h.

References Platform::GetPageAllocator(), and DefaultPlatform::v8_platform_.

◆ GetTracingController()

TracingController* GetTracingController ( )
inlineoverridevirtual

Returns an instance of a TracingController. This must be non-nullptr. The default implementation returns an empty TracingController that consumes trace data without effect.

Reimplemented from Platform.

Definition at line 62 of file default-platform.h.

References Platform::GetTracingController(), and DefaultPlatform::v8_platform_.

◆ GetV8Platform()

v8::Platform* GetV8Platform ( ) const
inline

Definition at line 66 of file default-platform.h.

References DefaultPlatform::v8_platform_.

◆ InitializeProcess()

static void InitializeProcess ( DefaultPlatform platform)
static

Use this method instead of 'cppgc::InitializeProcess' when using 'cppgc::DefaultPlatform'. 'cppgc::DefaultPlatform::InitializeProcess' will initialize cppgc and v8 if needed (for non-standalone builds).

Parameters
platformDefaultPlatform instance used to initialize cppgc/v8.

◆ MonotonicallyIncreasingTime()

double MonotonicallyIncreasingTime ( )
inlineoverridevirtual

Monotonically increasing time in seconds from an arbitrary fixed point in the past. This function is expected to return at least millisecond-precision values. For this reason, it is recommended that the fixed point be no further in the past than the epoch.

Implements Platform.

Definition at line 45 of file default-platform.h.

References Platform::MonotonicallyIncreasingTime(), and DefaultPlatform::v8_platform_.

◆ PostJob()

std::unique_ptr<cppgc::JobHandle> PostJob ( cppgc::TaskPriority  priority,
std::unique_ptr< cppgc::JobTask job_task 
)
inlineoverride

Definition at line 56 of file default-platform.h.

References Platform::PostJob(), and DefaultPlatform::v8_platform_.

Field Documentation

◆ kNoIsolate

constexpr v8::Isolate* kNoIsolate = nullptr
staticconstexprprotected

Definition at line 69 of file default-platform.h.

Referenced by DefaultPlatform::GetForegroundTaskRunner().

◆ v8_platform_


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