ECMAScript data-model via JavaScriptCore.
|
virtual void | addExtension (DataModelExtension *ext) |
| Register an extension to get data into and out of the data-model. More...
|
|
virtual void | assign (const std::string &location, const Data &data, const std::map< std::string, std::string > &attr=std::map< std::string, std::string >()) |
| Assign a data object to a location in the data-model. More...
|
|
virtual std::shared_ptr< DataModelImpl > | create (DataModelCallbacks *callbacks) |
| The Factory wants to instantiate a new instance. More...
|
|
virtual bool | evalAsBool (const std::string &expr) |
| Evaluate a given expression as a boolean. More...
|
|
virtual Data | evalAsData (const std::string &expr) |
| Return a string as an evaluated Data object. More...
|
|
virtual Data | getAsData (const std::string &content) |
| Return a string as an unevaluated Data object. More...
|
|
virtual uint32_t | getLength (const std::string &expr) |
| Evaluate the given expression as something iterable and return its length. More...
|
|
virtual std::list< std::string > | getNames () |
| Return a list of names to be matched by the datamodel attribute in SCXML.
|
|
virtual void | init (const std::string &location, const Data &data, const std::map< std::string, std::string > &attr=std::map< std::string, std::string >()) |
| Initialize a variable / location in the data-model with a given data object. More...
|
|
virtual bool | isDeclared (const std::string &expr) |
| Determine whether a given variable / location is declared. More...
|
|
virtual bool | isValidSyntax (const std::string &expr) |
| Determine whether a given string constitutes valid syntax in the data-model's language. More...
|
|
virtual void | setEvent (const Event &event) |
| Set the given event as _event in the data-model's global scope. More...
|
|
virtual void | setForeach (const std::string &item, const std::string &array, const std::string &index, uint32_t iteration) |
| Set a given item to the object at a given index for one iteration. More...
|
|
size_t | replaceExpressions (std::string &content) |
| Experimental extension to have dynamic content in string literals. More...
|
|
|
static JSValueRef | jsExtension (JSContextRef ctx, JSObjectRef function, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef *exception) |
|
static JSValueRef | jsIn (JSContextRef ctx, JSObjectRef function, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef *exception) |
|
static JSValueRef | jsInvokerGetProp (JSContextRef ctx, JSObjectRef object, JSStringRef propertyName, JSValueRef *exception) |
|
static bool | jsInvokerHasProp (JSContextRef ctx, JSObjectRef object, JSStringRef propertyName) |
|
static void | jsInvokerListProps (JSContextRef ctx, JSObjectRef object, JSPropertyNameAccumulatorRef propertyNames) |
|
static JSValueRef | jsIOProcessorGetProp (JSContextRef ctx, JSObjectRef object, JSStringRef propertyName, JSValueRef *exception) |
|
static bool | jsIOProcessorHasProp (JSContextRef ctx, JSObjectRef object, JSStringRef propertyName) |
|
static void | jsIOProcessorListProps (JSContextRef ctx, JSObjectRef object, JSPropertyNameAccumulatorRef propertyNames) |
|
static JSValueRef | jsPrint (JSContextRef ctx, JSObjectRef function, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef *exception) |
|
|
static std::mutex | _initMutex |
|
static JSClassDefinition | jsExtensionClassDef = { 0, 0, "Extension", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, jsExtension, 0, 0, 0 } |
|
static JSClassDefinition | jsInClassDef = { 0, 0, "In", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, jsIn, 0, 0, 0 } |
|
static JSClassDefinition | jsInvokersClassDef = { 0, 0, "invokers", 0, 0, 0, 0, 0, jsInvokerHasProp, jsInvokerGetProp, 0, 0, jsInvokerListProps, 0, 0, 0, 0 } |
|
static JSClassDefinition | jsIOProcessorsClassDef = { 0, 0, "ioProcessors", 0, 0, 0, 0, 0, jsIOProcessorHasProp, jsIOProcessorGetProp, 0, 0, jsIOProcessorListProps, 0, 0, 0, 0 } |
|
static JSClassDefinition | jsPrintClassDef = { 0, 0, "print", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, jsPrint, 0, 0, 0 } |
|
void uscxml::JSCDataModel::assign |
( |
const std::string & |
location, |
|
|
const Data & |
data, |
|
|
const std::map< std::string, std::string > & |
attr = std::map< std::string, std::string >() |
|
) |
| |
|
virtual |
There are different occurences in the SCXML IRP tests, e.g.
test147:
<data id="Var1" expr="0"/>
test150:
<data id="Var3">
[1,2,3]
</data>
test277:
<data id="Var1" expr="return"/>
- Parameters
-
location | A variable or locatio to assign to. |
data | The Data object with the respective data. |
attr | Additional attributes of the XML assign element. |
test157: We need to evaluate, as this will not throw for 'continue' = Var[5] in
Implements uscxml::DataModelImpl.