CCF
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | List of all members
ccf::js::core::Context Class Reference

#include <context.h>

Public Member Functions

 Context (TxAccess acc)
 
virtual ~Context ()
 
 Context (const Context &)=delete
 
Contextoperator= (const Context &)=delete
 
Runtimeruntime ()
 
 operator JSContext * () const
 
void set_module_loader (const modules::ModuleLoaderPtr &ml)
 
virtual std::optional< JSWrappedValueget_module (std::string_view module_name)
 
JSWrappedValue wrap (JSValue &&val) const
 
JSWrappedValue wrap (const JSValue &val) const
 
JSValue extract_string_array (JSValueConst &argv, std::vector< std::string > &out)
 
std::pair< std::string, std::optional< std::string > > error_message ()
 
JSWrappedValue get_property (JSValue object, char const *property_name) const
 
JSWrappedValue get_global_obj () const
 
JSWrappedValue get_global_property (const char *s) const
 
JSWrappedValue get_or_create_global_property (const char *s, JSWrappedValue default_value) const
 
JSWrappedValue get_typed_array_buffer (const JSWrappedValue &obj, size_t *pbyte_offset, size_t *pbyte_length, size_t *pbytes_per_element) const
 
JSWrappedValue get_exported_function (const std::string &code, const std::string &func, const std::string &path)
 
JSWrappedValue get_exported_function (const JSWrappedValue &module, const std::string &func, const std::string &path)
 
JSWrappedValue null () const
 
JSWrappedValue undefined () const
 
JSWrappedValue new_obj () const
 
JSWrappedValue new_obj_class (JSClassID class_id) const
 
JSWrappedValue new_array () const
 
JSWrappedValue new_array_buffer_copy (const uint8_t *buf, size_t buf_len) const
 
JSWrappedValue new_array_buffer_copy (const char *buf, size_t buf_len) const
 
JSWrappedValue new_array_buffer_copy (std::span< const uint8_t > data) const
 
JSWrappedValue new_string (const std::string_view &str) const
 
JSWrappedValue new_string_len (const char *buf, size_t buf_len) const
 
JSWrappedValue new_string_len (const std::span< const uint8_t > buf) const
 
JSWrappedValue new_type_error (const char *fmt,...) const
 
JSWrappedValue new_internal_error (const char *fmt,...) const
 
JSWrappedValue new_tag_value (int tag, int32_t val=0) const
 
JSWrappedValue new_c_function (JSCFunction *func, const char *name, int length) const
 
JSWrappedValue new_getter_c_function (JSCFunction *func, const char *name, size_t arg_count=0) const
 
JSWrappedValue duplicate_value (JSValueConst original) const
 
JSWrappedValue eval (const char *input, size_t input_len, const char *filename, int eval_flags) const
 
JSWrappedValue read_object (const uint8_t *buf, size_t buf_len, int flags) const
 
JSWrappedValue call_with_rt_options (const JSWrappedValue &f, const std::vector< JSWrappedValue > &argv, const std::optional< ccf::JSRuntimeOptions > &options, RuntimeLimitsPolicy policy)
 
JSWrappedValue inner_call (const JSWrappedValue &f, const std::vector< JSWrappedValue > &argv)
 
JSWrappedValue json_stringify (const JSWrappedValue &obj) const
 
JSWrappedValue parse_json (const nlohmann::json &j) const
 
JSWrappedValue parse_json (const char *buf, size_t buf_len, const char *filename) const
 
std::optional< std::string > to_str (const JSWrappedValue &x) const
 
std::optional< std::string > to_str (const JSValue &x) const
 
std::optional< std::string > to_str (const JSValue &x, size_t &len) const
 
std::optional< std::string > to_str (const JSAtom &atom) const
 
void add_extension (const js::extensions::ExtensionPtr &extension)
 
bool remove_extension (const js::extensions::ExtensionPtr &extension)
 
template<typename TExtension >
TExtension * get_extension ()
 

Public Attributes

ccf::pal::Mutex lock
 
const TxAccess access
 
InterruptData interrupt_data
 
bool log_execution_metrics = true
 

Constructor & Destructor Documentation

◆ Context() [1/2]

ccf::js::core::Context::Context ( TxAccess  acc)

◆ ~Context()

ccf::js::core::Context::~Context ( )
virtual

◆ Context() [2/2]

ccf::js::core::Context::Context ( const Context )
delete

Member Function Documentation

◆ add_extension()

void ccf::js::core::Context::add_extension ( const js::extensions::ExtensionPtr extension)

◆ call_with_rt_options()

JSWrappedValue ccf::js::core::Context::call_with_rt_options ( const JSWrappedValue f,
const std::vector< JSWrappedValue > &  argv,
const std::optional< ccf::JSRuntimeOptions > &  options,
RuntimeLimitsPolicy  policy 
)

◆ duplicate_value()

JSWrappedValue ccf::js::core::Context::duplicate_value ( JSValueConst  original) const

◆ error_message()

std::pair< std::string, std::optional< std::string > > ccf::js::core::Context::error_message ( )

◆ eval()

JSWrappedValue ccf::js::core::Context::eval ( const char *  input,
size_t  input_len,
const char *  filename,
int  eval_flags 
) const

◆ extract_string_array()

JSValue ccf::js::core::Context::extract_string_array ( JSValueConst &  argv,
std::vector< std::string > &  out 
)

◆ get_exported_function() [1/2]

JSWrappedValue ccf::js::core::Context::get_exported_function ( const JSWrappedValue module,
const std::string &  func,
const std::string &  path 
)

◆ get_exported_function() [2/2]

JSWrappedValue ccf::js::core::Context::get_exported_function ( const std::string &  code,
const std::string &  func,
const std::string &  path 
)

◆ get_extension()

template<typename TExtension >
TExtension * ccf::js::core::Context::get_extension ( )
inline

◆ get_global_obj()

JSWrappedValue ccf::js::core::Context::get_global_obj ( ) const

◆ get_global_property()

JSWrappedValue ccf::js::core::Context::get_global_property ( const char *  s) const

◆ get_module()

std::optional< JSWrappedValue > ccf::js::core::Context::get_module ( std::string_view  module_name)
virtual

◆ get_or_create_global_property()

JSWrappedValue ccf::js::core::Context::get_or_create_global_property ( const char *  s,
JSWrappedValue  default_value 
) const

◆ get_property()

JSWrappedValue ccf::js::core::Context::get_property ( JSValue  object,
char const *  property_name 
) const

◆ get_typed_array_buffer()

JSWrappedValue ccf::js::core::Context::get_typed_array_buffer ( const JSWrappedValue obj,
size_t *  pbyte_offset,
size_t *  pbyte_length,
size_t *  pbytes_per_element 
) const

◆ inner_call()

JSWrappedValue ccf::js::core::Context::inner_call ( const JSWrappedValue f,
const std::vector< JSWrappedValue > &  argv 
)

◆ json_stringify()

JSWrappedValue ccf::js::core::Context::json_stringify ( const JSWrappedValue obj) const

◆ new_array()

JSWrappedValue ccf::js::core::Context::new_array ( ) const

◆ new_array_buffer_copy() [1/3]

JSWrappedValue ccf::js::core::Context::new_array_buffer_copy ( const char *  buf,
size_t  buf_len 
) const

◆ new_array_buffer_copy() [2/3]

JSWrappedValue ccf::js::core::Context::new_array_buffer_copy ( const uint8_t *  buf,
size_t  buf_len 
) const

◆ new_array_buffer_copy() [3/3]

JSWrappedValue ccf::js::core::Context::new_array_buffer_copy ( std::span< const uint8_t >  data) const

◆ new_c_function()

JSWrappedValue ccf::js::core::Context::new_c_function ( JSCFunction *  func,
const char *  name,
int  length 
) const

◆ new_getter_c_function()

JSWrappedValue ccf::js::core::Context::new_getter_c_function ( JSCFunction *  func,
const char *  name,
size_t  arg_count = 0 
) const

◆ new_internal_error()

JSWrappedValue ccf::js::core::Context::new_internal_error ( const char *  fmt,
  ... 
) const

◆ new_obj()

JSWrappedValue ccf::js::core::Context::new_obj ( ) const

◆ new_obj_class()

JSWrappedValue ccf::js::core::Context::new_obj_class ( JSClassID  class_id) const

◆ new_string()

JSWrappedValue ccf::js::core::Context::new_string ( const std::string_view &  str) const

◆ new_string_len() [1/2]

JSWrappedValue ccf::js::core::Context::new_string_len ( const char *  buf,
size_t  buf_len 
) const

◆ new_string_len() [2/2]

JSWrappedValue ccf::js::core::Context::new_string_len ( const std::span< const uint8_t >  buf) const

◆ new_tag_value()

JSWrappedValue ccf::js::core::Context::new_tag_value ( int  tag,
int32_t  val = 0 
) const

◆ new_type_error()

JSWrappedValue ccf::js::core::Context::new_type_error ( const char *  fmt,
  ... 
) const

◆ null()

JSWrappedValue ccf::js::core::Context::null ( ) const

◆ operator JSContext *()

ccf::js::core::Context::operator JSContext * ( ) const
inline

◆ operator=()

Context & ccf::js::core::Context::operator= ( const Context )
delete

◆ parse_json() [1/2]

JSWrappedValue ccf::js::core::Context::parse_json ( const char *  buf,
size_t  buf_len,
const char *  filename 
) const

◆ parse_json() [2/2]

JSWrappedValue ccf::js::core::Context::parse_json ( const nlohmann::json &  j) const

◆ read_object()

JSWrappedValue ccf::js::core::Context::read_object ( const uint8_t *  buf,
size_t  buf_len,
int  flags 
) const

◆ remove_extension()

bool ccf::js::core::Context::remove_extension ( const js::extensions::ExtensionPtr extension)

◆ runtime()

Runtime & ccf::js::core::Context::runtime ( )
inline

◆ set_module_loader()

void ccf::js::core::Context::set_module_loader ( const modules::ModuleLoaderPtr ml)
inline

◆ to_str() [1/4]

std::optional< std::string > ccf::js::core::Context::to_str ( const JSAtom &  atom) const

◆ to_str() [2/4]

std::optional< std::string > ccf::js::core::Context::to_str ( const JSValue &  x) const

◆ to_str() [3/4]

std::optional< std::string > ccf::js::core::Context::to_str ( const JSValue &  x,
size_t &  len 
) const

◆ to_str() [4/4]

std::optional< std::string > ccf::js::core::Context::to_str ( const JSWrappedValue x) const

◆ undefined()

JSWrappedValue ccf::js::core::Context::undefined ( ) const

◆ wrap() [1/2]

JSWrappedValue ccf::js::core::Context::wrap ( const JSValue &  val) const

◆ wrap() [2/2]

JSWrappedValue ccf::js::core::Context::wrap ( JSValue &&  val) const

Member Data Documentation

◆ access

const TxAccess ccf::js::core::Context::access

◆ interrupt_data

InterruptData ccf::js::core::Context::interrupt_data

◆ lock

ccf::pal::Mutex ccf::js::core::Context::lock

◆ log_execution_metrics

bool ccf::js::core::Context::log_execution_metrics = true

The documentation for this class was generated from the following files: