v8toolkit
0.0.1
Utility library for embedding V8 Javascript engine in a c++ program
|
#include <iostream>
#include <vector>
#include <fstream>
#include <sstream>
#include <tuple>
#include <string.h>
#include "v8helpers.h"
#include "casts.hpp"
#include "stdfunctionreplacement.h"
#include "call_callable.h"
#include <dirent.h>
#include "casts_impl.hpp"
Go to the source code of this file.
Namespaces | |
v8toolkit | |
Macros | |
#define | V8_TOOLKIT_DEBUG false |
#define | CONTEXT_SCOPED_RUN(local_context) |
#define | GLOBAL_CONTEXT_SCOPED_RUN(isolate, global_context) |
#define | ISOLATE_SCOPED_RUN(isolate) |
#define | DEBUG_SCOPED_RUN(isolate) |
Typedefs | |
template<class T > | |
using | v8toolkit::remove_const_from_reference_t = typename remove_const_from_reference< T >::type |
Functions | |
template<class T > | |
auto | v8toolkit::scoped_run (v8::Isolate *isolate, T callable) -> typename std::result_of< T()>::type |
template<class T > | |
auto | v8toolkit::scoped_run (v8::Isolate *isolate, v8::Local< v8::Context > context, T callable) -> typename std::result_of< T()>::type |
template<class T > | |
auto | v8toolkit::scoped_run (v8::Isolate *isolate, const v8::Global< v8::Context > &context, T callable) |
template<class R , class... Args> | |
v8::Local< v8::FunctionTemplate > | v8toolkit::make_function_template (v8::Isolate *isolate, func::function< R(Args...)> f, std::string const &name) |
template<class R , class CLASS , class... Args> | |
func::function< R(Args...)> | v8toolkit::make_std_function_from_callable (R(CLASS::*f)(Args...) const, CLASS callable) |
template<class R , class... Args> | |
func::function< R(Args...)> | v8toolkit::make_std_function_from_callable (R(*callable)(Args...), std::string name) |
template<class T > | |
v8::Local< v8::FunctionTemplate > | v8toolkit::make_function_template (v8::Isolate *isolate, T callable, std::string name) |
template<class R , class... Args> | |
v8::Local< v8::FunctionTemplate > | v8toolkit::make_function_template (v8::Isolate *isolate, R(*f)(Args...), std::string const &name) |
template<class R , class... Args> | |
void | v8toolkit::add_function (v8::Isolate *isolate, const v8::Local< v8::ObjectTemplate > &object_template, const char *name, func::function< R(Args...)> function) |
template<class T > | |
void | v8toolkit::add_function (v8::Isolate *isolate, const v8::Local< v8::ObjectTemplate > &object_template, const char *name, T callable) |
template<class R , class... Args> | |
void | v8toolkit::add_function (v8::Isolate *isolate, const v8::Local< v8::ObjectTemplate > &object_template, const char *name, R(*function)(Args...)) |
template<class T > | |
void | v8toolkit::add_function (const v8::Local< v8::Context > &context, const v8::Local< v8::Object > &object, const char *name, T callable) |
void | v8toolkit::add_variable (v8::Isolate *isolate, const v8::Local< v8::ObjectTemplate > &object_template, const char *name, const v8::Local< v8::Data > value) |
void | v8toolkit::add_variable (const v8::Local< v8::Context > context, const v8::Local< v8::Object > &object, const char *name, const v8::Local< v8::Value > value) |
void | v8toolkit::add_function (v8::Isolate *isolate, const v8::Local< v8::ObjectTemplate > &object_template, const char *name, void(*function)(const v8::FunctionCallbackInfo< v8::Value > &)) |
template<class... OriginalTypes, class... Ts> | |
v8::Local< v8::Value > | v8toolkit::call_javascript_function_with_vars (const v8::Local< v8::Context > context, const v8::Local< v8::Function > function, const v8::Local< v8::Object > receiver, const TypeList< OriginalTypes... > &type_list, Ts &&...ts) |
template<class TupleType = std::tuple<>> | |
v8::Local< v8::Value > | v8toolkit::call_javascript_function (const v8::Local< v8::Context > context, const v8::Local< v8::Function > function, const v8::Local< v8::Object > receiver, const TupleType &tuple={}) |
template<class TupleType = std::tuple<>> | |
v8::Local< v8::Value > | v8toolkit::call_javascript_function (const v8::Local< v8::Context > context, const std::string &function_name, const v8::Local< v8::Object > receiver, const TupleType &tuple={}) |
template<class T > | |
void | v8toolkit::_variable_getter (v8::Local< v8::String > property, const v8::PropertyCallbackInfo< v8::Value > &info) |
template<class T , std::enable_if_t< std::is_const< T >::value, int > = 0> | |
void | v8toolkit::_variable_setter (v8::Local< v8::String > property, v8::Local< v8::Value > value, const v8::PropertyCallbackInfo< void > &info) |
template<class T > | |
void | v8toolkit::expose_variable (v8::Isolate *isolate, const v8::Local< v8::ObjectTemplate > &object_template, const char *name, T &variable) |
template<class T , class... Rest> | |
void | v8toolkit::expose_variable (v8::Isolate *isolate, const v8::Local< v8::ObjectTemplate > &object_template, const char *name, std::unique_ptr< T, Rest... > &variable) |
template<class T > | |
void | v8toolkit::expose_variable_readonly (v8::Isolate *isolate, const v8::Local< v8::ObjectTemplate > &object_template, const char *name, T &variable) |
template<class T > | |
void | v8toolkit::expose_variable (v8::Local< v8::Context > context, const v8::Local< v8::Object > &object, const char *name, T &variable) |
template<class T > | |
void | v8toolkit::expose_variable_readonly (v8::Local< v8::Context > context, const v8::Local< v8::Object > &object, const char *name, T &variable) |
SetWeakCallbackData * | v8toolkit::global_set_weak (v8::Isolate *isolate, const v8::Local< v8::Object > &javascript_object, func::function< void(v8::WeakCallbackInfo< SetWeakCallbackData > const &)> callback, bool destructive) |
std::string | v8toolkit::_printf_helper (const v8::FunctionCallbackInfo< v8::Value > &args, bool append_newline) |
std::vector< v8::Local< v8::Value > > | v8toolkit::get_all_values (const v8::FunctionCallbackInfo< v8::Value > &args, int depth=1) |
std::string | v8toolkit::_print_helper (const v8::FunctionCallbackInfo< v8::Value > &args, bool append_newline) |
void | v8toolkit::add_print (v8::Isolate *isolate, v8::Local< v8::ObjectTemplate > object_template, func::function< void(const std::string &)>=[](const std::string &s){printf("%s", s.c_str());}) |
void | v8toolkit::add_print (const v8::Local< v8::Context > context, func::function< void(const std::string &)> callback=[](const std::string &s){printf("%s", s.c_str());}) |
void | v8toolkit::add_assert (v8::Isolate *isolate, v8::Local< v8::ObjectTemplate > object_template) |
bool | v8toolkit::compare_contents (v8::Isolate *isolate, const v8::Local< v8::Value > &left, const v8::Local< v8::Value > &right) |
template<class CLASS , class R , class METHOD_CLASS , class... Args> | |
func::function< R(Args...)> | v8toolkit::bind (CLASS &object, R(METHOD_CLASS::*method)(Args...)) |
template<class CLASS , class R , class METHOD_CLASS , class... Args> | |
func::function< R(Args...)> | v8toolkit::bind (CLASS &object, R(METHOD_CLASS::*method)(Args...)&) |
template<class CLASS , class R , class METHOD_CLASS , class... Args> | |
func::function< R(Args...)> | v8toolkit::bind (CLASS &object, R(METHOD_CLASS::*method)(Args...) const &) |
bool | v8toolkit::get_file_contents (std::string filename, std::string &file_contents, time_t &file_modification_time) |
bool | v8toolkit::get_file_contents (std::string filename, std::string &file_contents) |
void | v8toolkit::delete_require_cache_for_isolate (v8::Isolate *isolate) |
void | v8toolkit::add_require (v8::Isolate *isolate, const v8::Local< v8::ObjectTemplate > &context, const std::vector< std::string > &paths) |
void | v8toolkit::add_module_list (v8::Isolate *isolate, const v8::Local< v8::ObjectTemplate > &object_template) |
bool | v8toolkit::require (v8::Local< v8::Context > context, std::string filename, v8::Local< v8::Value > &result, const std::vector< std::string > &paths, bool track_modification_times=false, bool use_cache=true, func::function< void(RequireResult const &)> callback=func::function< void(RequireResult const &)>(), func::function< std::string(std::string const &)> resource_name_callback=func::function< std::string(std::string const &)>()) |
void | v8toolkit::require_directory (v8::Local< v8::Context > context, std::string directory_name) |
void | v8toolkit::dump_prototypes (v8::Isolate *isolate, v8::Local< v8::Object > object) |
std::vector< std::string > | v8toolkit::get_interesting_properties (v8::Local< v8::Context > context, v8::Local< v8::Object > object) |
v8::Local< v8::Value > | v8toolkit::run_script (v8::Local< v8::Context > context, v8::Local< v8::Script > script) |
void | v8toolkit::foreach_file (const std::string &directory_name, std::function< void(const std::string &)> const &callback) |
void | v8toolkit::foreach_directory (const std::string &directory_name, std::function< void(const std::string &)> const &callback) |
struct v8toolkit::remove_const_from_reference |
Definition at line 319 of file v8toolkit.h.
Class Members | ||
---|---|---|
typedef T | type |
struct v8toolkit::remove_const_from_reference< T const & > |
Definition at line 325 of file v8toolkit.h.
Class Members | ||
---|---|---|
typedef T && | type |
struct v8toolkit::remove_const_from_reference< T const > |
Definition at line 330 of file v8toolkit.h.
Class Members | ||
---|---|---|
typedef T | type |
struct v8toolkit::FunctionTemplateData |
Struct of data passed down through building the parameters to call the function and actually calling the function
Definition at line 344 of file v8toolkit.h.
Class Members | ||
---|---|---|
callable | ||
string | name |
struct v8toolkit::Bind |
Accepts an object and a method on that object to be called later via its operator() Does not require knowledge of how many parameters the method takes or any placeholder arguments Can be wrapped with a func::function
Definition at line 770 of file v8toolkit.h.
#define V8_TOOLKIT_DEBUG false |
Definition at line 24 of file v8toolkit.h.
Referenced by v8toolkit::add_assert(), v8toolkit::add_require(), v8toolkit::compile_source(), and v8toolkit::require_directory().
#define CONTEXT_SCOPED_RUN | ( | local_context | ) |
Definition at line 78 of file v8toolkit.h.
Referenced by v8toolkit::add_function().
#define GLOBAL_CONTEXT_SCOPED_RUN | ( | isolate, | |
global_context | |||
) |
Definition at line 85 of file v8toolkit.h.
Referenced by v8toolkit::Context::add_function(), v8toolkit::Context::add_variable(), v8toolkit::Context::compile(), v8toolkit::Context::operator()(), v8toolkit::Context::run(), and v8toolkit::WebsocketChannel::WebsocketChannel().
#define ISOLATE_SCOPED_RUN | ( | isolate | ) |
Definition at line 93 of file v8toolkit.h.
Referenced by v8toolkit::Isolate::create_context(), v8toolkit::Isolate::create_debug_context(), v8toolkit::Isolate::operator()(), v8toolkit::V8ClassWrapper< T, V8TOOLKIT_V8CLASSWRAPPER_USE_REAL_TEMPLATE_SFINAE >::set_parent_type(), and WrappedClassFixture::WrappedClassFixture().
#define DEBUG_SCOPED_RUN | ( | isolate | ) |
Definition at line 98 of file v8toolkit.h.