1#ifndef COIN_SOJAVASCRIPTENGINE_H
2#define COIN_SOJAVASCRIPTENGINE_H
27#include <Inventor/misc/SoScriptEngine.h>
28#include <Inventor/C/glue/spidermonkey.h>
29#include <Inventor/lists/SbList.h>
33#define COIN_JAVASCRIPT_RUNTIME_MAXBYTES 4194304
37typedef void SoJSfield2jsvalFunc(JSContext *,
const SoField *, jsval *);
38typedef SbBool SoJSjsval2field2Func(JSContext *,
const jsval,
SoField *);
39typedef JSObject * SoJSWrapperInitFunc(JSContext *, JSObject * obj);
43class COIN_DLL_API SoJavaScriptEngine :
public SoScriptEngine {
47 virtual ~SoJavaScriptEngine();
49 virtual SbBool executeScript(
const SbName & name,
51 virtual SbBool executeFile(
const SbName & filename)
const;
52 virtual SbBool executeFunction(
const SbName &name,
int argc,
56 virtual SbBool setScriptField(
const SbName & name,
const SoField * f)
const;
57 virtual SbBool unsetScriptField(
const SbName & name)
const;
58 virtual SbBool getScriptField(
const SbName & name,
SoField * f)
const;
59 virtual SbBool hasScriptField(
const SbName & name)
const;
63 static SoJavaScriptEngine *getEngine(JSContext * cx);
65 SbBool field2jsval(
const SoField * f, jsval * v)
const;
66 SbBool jsval2field(
const jsval v,
SoField * f)
const;
67 void enableAutoNodeUnref(SbBool onoff);
68 SbBool getAutoNodeUnrefState(
void)
const;
70 static SbBool init(uint32_t maxbytes = COIN_JAVASCRIPT_RUNTIME_MAXBYTES);
71 static void shutdown(
void);
72 static SbBool debug(
void);
74 static JSRuntime * getRuntime(
void);
75 JSContext * getContext(
void)
const;
76 JSObject * getGlobal(
void)
const;
78 void addHandler(
const SoType & type, SoJSWrapperInitFunc * init,
79 SoJSfield2jsvalFunc * field2jsval,
80 SoJSjsval2field2Func * jsval2field);
83 static void setRuntime(JSRuntime * runtime);
84 void setContext(JSContext * context);
85 void setGlobal(JSObject * global);
88 class SoJavaScriptEngineP * pimpl;
89 friend class SoJavaScriptEngineP;
The SbName class stores strings by reference.
Definition SbName.h:31
The SbString class is a string class with convenience functions for string operations.
Definition SbString.h:42
The SoField class is the top-level abstract base class for fields.
Definition SoField.h:38
The SoType class is the basis for the run-time type system in Coin.
Definition SoType.h:50
Copyright © 1998-2010 by Kongsberg Oil & Gas Technologies. All rights reserved.
Generated on Wed Jul 17 2024 for Coin by Doxygen 1.12.0.