v8toolkit  0.0.1
Utility library for embedding V8 Javascript engine in a c++ program
Classes | Namespaces | Macros
parameter_builder.h File Reference
#include <tuple>
#include <v8.h>
#include "casts.hpp"
#include "v8helpers.h"
#include "unspecified_parameter_value.h"
Include dependency graph for parameter_builder.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  v8toolkit::ParameterBuilder< T, class >
 
struct  v8toolkit::ParameterBuilder< T &, std::enable_if_t<!std::is_same_v< std::remove_const_t< T >, char > &&!is_wrapped_type_v< T > > >
 
struct  v8toolkit::ParameterBuilder< T &, std::enable_if_t< std::is_same_v< std::remove_const_t< T >, char > &&!is_wrapped_type_v< T > > >
 
struct  v8toolkit::ParameterBuilder< T &&, std::enable_if_t<!is_wrapped_type_v< T > > >
 
struct  v8toolkit::enable_if_t<!is_wrapped_type_v< T > >>
 
struct  v8toolkit::enable_if_t< is_wrapped_type_v< T > >>
 
struct  v8toolkit::ParameterBuilder< T, std::enable_if_t<!std::is_pointer_v< T > &&!std::is_reference_v< T > &&!is_wrapped_type_v< T > > >
 
struct  v8toolkit::ParameterBuilder< char * >
 
struct  v8toolkit::enable_if_t<!std::is_reference< std::result_of_t< CastToNative< std::remove_const_t< std::remove_reference_t< Container< char *, Rest... > > > >(v8::Isolate *, v8::Local< v8::Value >)> >::value >
 
struct  v8toolkit::enable_if_t<!std::is_reference< std::result_of_t< CastToNative< std::remove_reference_t< Container< const char *, Rest... > > >(v8::Isolate *, v8::Local< v8::Value >) > >::value >
 
struct  v8toolkit::ParameterBuilder< char const * >
 
struct  v8toolkit::ParameterBuilder< const v8::FunctionCallbackInfo< v8::Value > & >
 
struct  v8toolkit::ParameterBuilder< v8::Isolate * >
 
struct  v8toolkit::ParameterBuilder< v8::Local< v8::Context > >
 
struct  v8toolkit::ParameterBuilder< v8::Local< T >, std::enable_if_t< !std::is_pointer_v< v8::Local< T > > && !std::is_reference_v< v8::Local< T > > && !is_wrapped_type_v< v8::Local< T > > > >
 

Namespaces

 v8toolkit
 

Macros

#define PB_PRINT(format_string, ...)
 

Class Documentation

struct v8toolkit::ParameterBuilder

template<class T, class = void>
struct v8toolkit::ParameterBuilder< T, class >

Used by CallCallable to build an actual list of values to send to a function. Each call to ParameterBuilder is responsible for one parameter.

If the parameter isn't self contained (like a char *), then the memory allocated for it will be stored in stuff which is automatically cleaned up when the function returns.

If no explicit parameter is provided from JavaScript, a default value may be available in default_args_tuple

Definition at line 35 of file parameter_builder.h.

Macro Definition Documentation

#define PB_PRINT (   format_string,
  ... 
)

Definition at line 21 of file parameter_builder.h.

Referenced by v8toolkit::ParameterBuilder< T &, std::enable_if_t<!std::is_same_v< std::remove_const_t< T >, char > &&!is_wrapped_type_v< T > > >::operator()(), v8toolkit::ParameterBuilder< T &, std::enable_if_t< std::is_same_v< std::remove_const_t< T >, char > &&!is_wrapped_type_v< T > > >::operator()(), v8toolkit::ParameterBuilder< T &&, std::enable_if_t<!is_wrapped_type_v< T > > >::operator()(), v8toolkit::enable_if_t<!is_wrapped_type_v< T > >>::operator()(), v8toolkit::enable_if_t< is_wrapped_type_v< T > >>::operator()(), v8toolkit::ParameterBuilder< T, std::enable_if_t<!std::is_pointer_v< T > &&!std::is_reference_v< T > &&!is_wrapped_type_v< T > > >::operator()(), v8toolkit::ParameterBuilder< char * >::operator()(), v8toolkit::enable_if_t<!std::is_reference< std::result_of_t< CastToNative< std::remove_const_t< std::remove_reference_t< Container< char *, Rest... > > > >(v8::Isolate *, v8::Local< v8::Value >)> >::value >::operator()(), v8toolkit::enable_if_t<!std::is_reference< std::result_of_t< CastToNative< std::remove_reference_t< Container< const char *, Rest... > > >(v8::Isolate *, v8::Local< v8::Value >) > >::value >::operator()(), v8toolkit::ParameterBuilder< char const * >::operator()(), v8toolkit::ParameterBuilder< const v8::FunctionCallbackInfo< v8::Value > & >::operator()(), v8toolkit::ParameterBuilder< v8::Isolate * >::operator()(), v8toolkit::ParameterBuilder< v8::Local< v8::Context > >::operator()(), v8toolkit::ParameterBuilder< v8::Local< T >, std::enable_if_t< !std::is_pointer_v< v8::Local< T > > && !std::is_reference_v< v8::Local< T > > && !is_wrapped_type_v< v8::Local< T > > > >::operator()(), v8toolkit::ParameterBuilder< T, std::enable_if_t< std::is_reference_v< T > &&is_wrapped_type_v< std::remove_reference_t< T > > > >::operator()(), and v8toolkit::ParameterBuilder< T, std::enable_if_t< std::is_copy_constructible_v< T > &&is_wrapped_type_v< T > > >::operator()().