v8 13.6.233 (node 24.1.0)
V8 is Google's open source JavaScript engine
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages Concepts
platform.h
Go to the documentation of this file.
1// Copyright 2020 the V8 project authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef INCLUDE_CPPGC_PLATFORM_H_
6#define INCLUDE_CPPGC_PLATFORM_H_
7
8#include <memory>
9
11#include "v8-platform.h" // NOLINT(build/include_directory)
12#include "v8config.h" // NOLINT(build/include_directory)
13
14namespace cppgc {
15
16// TODO(v8:10346): Create separate includes for concepts that are not
17// V8-specific.
23using Task = v8::Task;
27
32 public:
33 virtual ~Platform() = default;
34
41
49 virtual double MonotonicallyIncreasingTime() = 0;
50
54 virtual std::shared_ptr<TaskRunner> GetForegroundTaskRunner() {
55 return GetForegroundTaskRunner(TaskPriority::kUserBlocking);
56 }
57
62 virtual std::shared_ptr<TaskRunner> GetForegroundTaskRunner(
63 TaskPriority priority) {
64 return nullptr;
65 }
66
126 virtual std::unique_ptr<JobHandle> PostJob(
127 TaskPriority priority, std::unique_ptr<JobTask> job_task) {
128 return nullptr;
129 }
130
137};
138
140
155V8_EXPORT void InitializeProcess(PageAllocator* page_allocator = nullptr,
156 size_t desired_heap_size = 0);
157
164
165namespace internal {
166
167V8_EXPORT void Fatal(const std::string& reason = std::string(),
169
170} // namespace internal
171
172} // namespace cppgc
173
174#endif // INCLUDE_CPPGC_PLATFORM_H_
virtual ~Platform()=default
virtual std::shared_ptr< TaskRunner > GetForegroundTaskRunner(TaskPriority priority)
Definition platform.h:62
virtual std::unique_ptr< JobHandle > PostJob(TaskPriority priority, std::unique_ptr< JobTask > job_task)
Definition platform.h:126
virtual PageAllocator * GetPageAllocator()=0
virtual TracingController * GetTracingController()
virtual std::shared_ptr< TaskRunner > GetForegroundTaskRunner()
Definition platform.h:54
virtual double MonotonicallyIncreasingTime()=0
static constexpr SourceLocation Current()
V8_EXPORT void Fatal(const std::string &reason=std::string(), const SourceLocation &=SourceLocation::Current())
v8::JobDelegate JobDelegate
Definition platform.h:20
v8::Task Task
Definition platform.h:23
V8_EXPORT void InitializeProcess(PageAllocator *page_allocator=nullptr, size_t desired_heap_size=0)
v8::PageAllocator PageAllocator
Definition platform.h:22
v8::SourceLocation SourceLocation
v8::IdleTask IdleTask
Definition platform.h:18
V8_EXPORT void ShutdownProcess()
v8::TaskPriority TaskPriority
Definition platform.h:24
v8::JobHandle JobHandle
Definition platform.h:19
v8::TracingController TracingController
Definition platform.h:26
v8::TaskRunner TaskRunner
Definition platform.h:25
v8::JobTask JobTask
Definition platform.h:21
V8_EXPORT bool IsInitialized()
TaskPriority
Definition v8-platform.h:24
#define V8_EXPORT
Definition v8config.h:800