CCF
Loading...
Searching...
No Matches
runtime.h
Go to the documentation of this file.
1// Copyright (c) Microsoft Corporation. All rights reserved.
2// Licensed under the Apache 2.0 License.
3#pragma once
4
6
7#include <chrono>
8#include <quickjs/quickjs.h>
9
10namespace ccf::js::core
11{
13 {
14 NONE,
16 };
17
18 class Runtime
19 {
20 JSRuntime* rt = nullptr;
21
22 std::chrono::milliseconds max_exec_time{
24
25 void add_ccf_classdefs();
26
27 public:
32
33 Runtime();
34 ~Runtime();
35
36 operator JSRuntime*() const
37 {
38 return rt;
39 }
40
43 const std::optional<ccf::JSRuntimeOptions>& options_opt,
44 RuntimeLimitsPolicy policy);
45
46 std::chrono::milliseconds get_max_exec_time() const
47 {
48 return max_exec_time;
49 }
50 };
51}
Definition runtime.h:19
Runtime()
Definition runtime.cpp:12
bool log_exception_details
Definition runtime.h:28
bool return_exception_details
Definition runtime.h:30
void set_runtime_options(const std::optional< ccf::JSRuntimeOptions > &options_opt, RuntimeLimitsPolicy policy)
Definition runtime.cpp:57
std::chrono::milliseconds get_max_exec_time() const
Definition runtime.h:46
void reset_runtime_options()
Definition runtime.cpp:46
~Runtime()
Definition runtime.cpp:24
Definition constants.h:8
RuntimeLimitsPolicy
Definition runtime.h:13
static constexpr bool return_exception_details
Definition jsengine.h:19
static constexpr bool log_exception_details
Definition jsengine.h:18
static constexpr uint64_t max_execution_time_ms
Definition jsengine.h:17