CCF
Loading...
Searching...
No Matches
wrapped_value.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 <quickjs/quickjs.h>
8#include <string>
9
10namespace ccf::js::core
11{
13 {
14 JSContext* ctx;
15 JSValue val;
16
18 JSWrappedValue(JSContext* ctx, JSValue&& val);
19 JSWrappedValue(JSContext* ctx, const JSValue& value);
20 JSWrappedValue(const JSWrappedValue& other);
21 JSWrappedValue(JSWrappedValue&& other) noexcept;
23
25
26 JSWrappedValue operator[](const char* prop) const;
27
28 JSWrappedValue operator[](const std::string& prop) const;
29
30 JSWrappedValue operator[](uint32_t i) const;
31
32 [[nodiscard]] int set(const char* prop, JSWrappedValue&& value) const;
33
34 [[nodiscard]] int set_getter(
35 const char* prop, JSWrappedValue&& getter) const;
36
37 [[nodiscard]] int set(
38 const std::string& prop, JSWrappedValue&& value) const;
39
40 [[nodiscard]] int set(const std::string& prop, JSValue value) const;
41
42 [[nodiscard]] int set_null(const std::string& prop) const;
43
44 [[nodiscard]] int set_uint32(const std::string& prop, uint32_t i) const;
45
46 [[nodiscard]] int set_int64(const std::string& prop, int64_t i) const;
47
48 [[nodiscard]] int set_bool(const std::string& prop, bool b) const;
49
50 [[nodiscard]] int set_at_index(
51 uint32_t index, JSWrappedValue&& value) const;
52
53 [[nodiscard]] bool is_exception() const;
54
55 [[nodiscard]] bool is_error() const;
56
57 [[nodiscard]] bool is_obj() const;
58
59 [[nodiscard]] bool is_str() const;
60
61 [[nodiscard]] bool is_true() const;
62
63 [[nodiscard]] bool is_undefined() const;
64
65 [[nodiscard]] JSValue take();
66 };
67}
Definition constants.h:8
Definition wrapped_value.h:13
int set_at_index(uint32_t index, JSWrappedValue &&value) const
Definition wrapped_value.cpp:138
JSWrappedValue()
Definition wrapped_value.cpp:10
int set_null(const std::string &prop) const
Definition wrapped_value.cpp:116
JSWrappedValue operator[](const char *prop) const
Definition wrapped_value.cpp:55
JSValue take()
Definition wrapped_value.cpp:180
~JSWrappedValue()
Definition wrapped_value.cpp:37
bool is_error() const
Definition wrapped_value.cpp:154
bool is_true() const
Definition wrapped_value.cpp:169
int set_bool(const std::string &prop, bool b) const
Definition wrapped_value.cpp:132
int set_uint32(const std::string &prop, uint32_t i) const
Definition wrapped_value.cpp:122
int set_int64(const std::string &prop, int64_t i) const
Definition wrapped_value.cpp:127
bool is_undefined() const
Definition wrapped_value.cpp:175
JSWrappedValue & operator=(const JSWrappedValue &other)
Definition wrapped_value.cpp:45
bool is_obj() const
Definition wrapped_value.cpp:159
bool is_exception() const
Definition wrapped_value.cpp:149
int set(const char *prop, JSWrappedValue &&value) const
Definition wrapped_value.cpp:70
bool is_str() const
Definition wrapped_value.cpp:164
JSValue val
Definition wrapped_value.h:15
int set_getter(const char *prop, JSWrappedValue &&getter) const
Definition wrapped_value.cpp:80
JSContext * ctx
Definition wrapped_value.h:14