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:142
JSWrappedValue()
Definition wrapped_value.cpp:10
int set_null(const std::string &prop) const
Definition wrapped_value.cpp:120
JSWrappedValue operator[](const char *prop) const
Definition wrapped_value.cpp:59
JSValue take()
Definition wrapped_value.cpp:184
~JSWrappedValue()
Definition wrapped_value.cpp:37
bool is_error() const
Definition wrapped_value.cpp:158
bool is_true() const
Definition wrapped_value.cpp:173
int set_bool(const std::string &prop, bool b) const
Definition wrapped_value.cpp:136
int set_uint32(const std::string &prop, uint32_t i) const
Definition wrapped_value.cpp:126
int set_int64(const std::string &prop, int64_t i) const
Definition wrapped_value.cpp:131
bool is_undefined() const
Definition wrapped_value.cpp:179
JSWrappedValue & operator=(const JSWrappedValue &other)
Definition wrapped_value.cpp:45
bool is_obj() const
Definition wrapped_value.cpp:163
bool is_exception() const
Definition wrapped_value.cpp:153
int set(const char *prop, JSWrappedValue &&value) const
Definition wrapped_value.cpp:74
bool is_str() const
Definition wrapped_value.cpp:168
JSValue val
Definition wrapped_value.h:15
int set_getter(const char *prop, JSWrappedValue &&getter) const
Definition wrapped_value.cpp:84
JSContext * ctx
Definition wrapped_value.h:14