Loading...
Searching...
No Matches
JSPropertyValue

#include <AppCore/JSHelpers.h>

Overview

Wrapper for JSObject property value (JSValue subclass).

Allows new value assignment to object property, binding C++ callbacks to object properties via function objects, as well as value query via the JSValue interface.

Inheritance diagram for JSPropertyValue:
JSValue

Public Member Functions

virtual ~JSPropertyValue ()
 
virtual JSPropertyValueoperator= (const JSValue &value)
 Assign a new value to the property (internally calls JSObjectSetProperty)
 
JSPropertyValueoperator= (const JSCallback &callback)
 Bind to native C++ callback (creates a Function object that can be called from JS)
 
JSPropertyValueoperator= (const JSCallbackWithRetval &callback)
 Bind to native C++ callback with return value (creates a Function object that can be called from JS)
 
- Public Member Functions inherited from JSValue
 JSValue ()
 Create null (empty) JSValue.
 
 JSValue (JSValueNullTag)
 Create null JSValue explicitly.
 
 JSValue (JSValueUndefinedTag)
 Create undefined JSValue.
 
 JSValue (bool val)
 Create boolean JSValue.
 
 JSValue (uint32_t val)
 Create unsigned integer JSValue (aka, Number) [will be cast to double].
 
 JSValue (int32_t val)
 Create integer JSValue (aka, Number) [will be cast to double].
 
 JSValue (uint64_t val)
 Create unsigned integer JSValue (aka, Number) [will be cast to double].
 
 JSValue (int64_t val)
 Create integer JSValue (aka, Number) [will be cast to double].
 
 JSValue (double val)
 Create double JSValue (aka, Number)
 
 JSValue (const char *val)
 Create string JSValue.
 
 JSValue (const String &val)
 Create string JSValue.
 
 JSValue (JSString val)
 Create string JSValue.
 
 JSValue (JSValueRef val)
 Create from existing JSValueRef.
 
 JSValue (JSObjectRef obj)
 Create object JSValue.
 
 JSValue (const JSValue &other)
 Copy constructor, a shallow copy is made, the constructed JSValue will point to the same JSValueRef.
 
virtual ~JSValue ()
 Destructor.
 
bool IsNull () const
 Whether or not the value is a JavaScript Null type.
 
bool IsUndefined () const
 Whether or not the value is a JavaScript Undefined type.
 
bool IsBoolean () const
 Whether or not the value is a JavaScript Boolean type.
 
bool IsNumber () const
 Whether or not the value is a JavaScript Number type.
 
bool IsString () const
 Whether or not the value is a JavaScript String type.
 
bool IsObject () const
 Whether or not the value is a JavaScript Object type.
 
bool IsArray () const
 Whether or not the value is a JavaScript Array type.
 
bool IsFunction () const
 Whether or not the value is a JavaScript Function type.
 
bool ToBoolean () const
 Get the value as a Boolean.
 
double ToNumber () const
 Get the value as a Number (Double)
 
int64_t ToInteger () const
 Get the value as a Number (Integer)
 
JSString ToString () const
 Get the value as a String.
 
JSObject ToObject () const
 Get the value as an Object (will debug assert if not an Object)
 
JSArray ToArray () const
 Get the value as an Array (will debug asset if not an Array)
 
JSFunction ToFunction () const
 Get the value as a Function (will debug asset if not a Function)
 
 operator bool () const
 
 operator double () const
 
 operator uint32_t () const
 
 operator int32_t () const
 
 operator uint64_t () const
 
 operator int64_t () const
 
 operator String () const
 
 operator JSString () const
 
 operator JSObject () const
 
 operator JSObjectRef () const
 
 operator JSArray () const
 
 operator JSFunction () const
 
 operator JSValueRef () const
 Get the underlying JSValueRef.
 
JSContextRef context () const
 Get the bound context for this JSValue (it is cached at creation).
 
void set_context (JSContextRef context)
 Set the JSContext for this JSValue.
 

Protected Member Functions

virtual JSValueRef instance () const
 
 JSPropertyValue (JSContextRef ctx, JSObjectRef proxy_obj, unsigned idx)
 
 JSPropertyValue (JSContextRef ctx, JSObjectRef proxy_obj, JSString idx)
 
 JSPropertyValue (const JSPropertyValue &)=default
 
JSPropertyValueoperator= (const JSPropertyValue &)=delete
 
- Protected Member Functions inherited from JSValue
 JSValue (JSContextRef ctx)
 
 JSValue (JSContextRef ctx, JSValueRef val)
 

Protected Attributes

JSObjectproxyObj_
 
bool using_numeric_idx_
 
unsigned numeric_idx_
 
JSString string_idx_
 
- Protected Attributes inherited from JSValue
JSContextRef ctx_
 
JSValueRef instance_ = nullptr
 

Friends

class JSArray
 
class JSObject
 

Constructor & Destructor Documentation

◆ ~JSPropertyValue()

virtual ~JSPropertyValue ( )
virtual

◆ JSPropertyValue() [1/3]

JSPropertyValue ( JSContextRef ctx,
JSObjectRef proxy_obj,
unsigned idx )
protected

◆ JSPropertyValue() [2/3]

JSPropertyValue ( JSContextRef ctx,
JSObjectRef proxy_obj,
JSString idx )
protected

◆ JSPropertyValue() [3/3]

JSPropertyValue ( const JSPropertyValue & )
protecteddefault

Member Function Documentation

◆ instance()

virtual JSValueRef instance ( ) const
protectedvirtual

Reimplemented from JSValue.

◆ operator=() [1/4]

JSPropertyValue & operator= ( const JSCallback & callback)

Bind to native C++ callback (creates a Function object that can be called from JS)

◆ operator=() [2/4]

JSPropertyValue & operator= ( const JSCallbackWithRetval & callback)

Bind to native C++ callback with return value (creates a Function object that can be called from JS)

◆ operator=() [3/4]

JSPropertyValue & operator= ( const JSPropertyValue & )
protecteddelete

◆ operator=() [4/4]

virtual JSPropertyValue & operator= ( const JSValue & value)
virtual

Assign a new value to the property (internally calls JSObjectSetProperty)

Reimplemented from JSValue.

Friends And Related Symbol Documentation

◆ JSArray

friend class JSArray
friend

◆ JSObject

friend class JSObject
friend

Member Data Documentation

◆ numeric_idx_

unsigned numeric_idx_
protected

◆ proxyObj_

JSObject* proxyObj_
protected

◆ string_idx_

JSString string_idx_
protected

◆ using_numeric_idx_

bool using_numeric_idx_
protected

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