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 int set(const char* prop, JSWrappedValue&& value) const;
33
34 int set_getter(const char* prop, JSWrappedValue&& getter) const;
35
36 int set(const std::string& prop, JSWrappedValue&& value) const;
37
38 int set(const std::string& prop, JSValue&& value) const;
39
40 int set_null(const std::string& prop) const;
41
42 int set_uint32(const std::string& prop, uint32_t i) const;
43
44 int set_int64(const std::string& prop, int64_t i) const;
45
46 int set_bool(const std::string& prop, bool b) const;
47
48 int set_at_index(uint32_t index, JSWrappedValue&& value);
49
50 bool is_exception() const;
51
52 bool is_error() const;
53
54 bool is_obj() const;
55
56 bool is_str() const;
57
58 bool is_true() const;
59
60 bool is_undefined() const;
61
62 JSValue take();
63 };
64}
Definition constants.h:8
Definition wrapped_value.h:13
JSWrappedValue()
Definition wrapped_value.cpp:10
int set_null(const std::string &prop) const
Definition wrapped_value.cpp:121
JSWrappedValue operator[](const char *prop) const
Definition wrapped_value.cpp:54
JSValue take()
Definition wrapped_value.cpp:187
~JSWrappedValue()
Definition wrapped_value.cpp:36
bool is_error() const
Definition wrapped_value.cpp:161
bool is_true() const
Definition wrapped_value.cpp:176
int set_bool(const std::string &prop, bool b) const
Definition wrapped_value.cpp:137
int set_uint32(const std::string &prop, uint32_t i) const
Definition wrapped_value.cpp:127
int set_int64(const std::string &prop, int64_t i) const
Definition wrapped_value.cpp:132
bool is_undefined() const
Definition wrapped_value.cpp:182
JSWrappedValue & operator=(const JSWrappedValue &other)
Definition wrapped_value.cpp:44
int set_at_index(uint32_t index, JSWrappedValue &&value)
Definition wrapped_value.cpp:144
bool is_obj() const
Definition wrapped_value.cpp:166
bool is_exception() const
Definition wrapped_value.cpp:156
int set(const char *prop, JSWrappedValue &&value) const
Definition wrapped_value.cpp:70
bool is_str() const
Definition wrapped_value.cpp:171
JSValue val
Definition wrapped_value.h:15
int set_getter(const char *prop, JSWrappedValue &&getter) const
Definition wrapped_value.cpp:82
JSContext * ctx
Definition wrapped_value.h:14