struct CCL::Scripting::IContext
Overview
Context for script execution, usually one per thread. More…
#include <iscriptengine.h> struct IContext: public CCL::IUnknown { // methods virtual IEngine&CCL_API getEngine () const = 0; virtual tresult CCL_API setOption (StringID id, VariantRef value) = 0; virtual void CCL_API attachModule (ModuleRef module) = 0; virtual void CCL_API detachModule (ModuleRef module) = 0; virtual tresult CCL_API setReporter (Alert::IReporter* reporter) = 0; virtual tresult CCL_API registerObject (CStringRef name, IObject* nativeObject) = 0; virtual IObject*CCL_API createObject ( CStringRef className, const Variant args [] = nullptr, int argCount = 0 ) = 0; virtual tresult CCL_API registerGlobalFunction ( CStringRef methodName, CCL::IObject* nativeObject ) = 0; virtual tresult CCL_API executeScript ( Variant& returnValue, const IScript& script ) = 0; virtual IObject*CCL_API compileScript (const IScript& script) = 0; virtual void CCL_API garbageCollect (tbool force) = 0; virtual tbool CCL_API removeReference (IUnknown* nativeObject) = 0; virtual void CCL_API dump () = 0; DECLARE_STRINGID_MEMBER (kStubObjectsEnabled); };
Inherited Members
public: // methods virtual tresult CCL_API queryInterface (UIDRef iid, void** ptr) = 0; virtual unsigned int CCL_API retain () = 0; virtual unsigned int CCL_API release () = 0;
Detailed Documentation
Context for script execution, usually one per thread.
Methods
virtual IEngine&CCL_API getEngine () const = 0
Get engine owning this context.
virtual tresult CCL_API setOption (StringID id, VariantRef value) = 0
Set context option.
virtual void CCL_API attachModule (ModuleRef module) = 0
Attach module to context.
virtual void CCL_API detachModule (ModuleRef module) = 0
Detach module from context.
virtual tresult CCL_API setReporter (Alert::IReporter* reporter) = 0
Set alert reporter.
virtual tresult CCL_API registerObject (CStringRef name, IObject* nativeObject) = 0
Register global object (shared by context).
virtual IObject*CCL_API createObject ( CStringRef className, const Variant args [] = nullptr, int argCount = 0 ) = 0
Create script object.
For JavaScript, class name can be “Object”, “Array”, “Int8Array”, etc.
virtual tresult CCL_API registerGlobalFunction ( CStringRef methodName, CCL::IObject* nativeObject ) = 0
Register object method as global function.
virtual tresult CCL_API executeScript ( Variant& returnValue, const IScript& script ) = 0
Execute script directly.
virtual IObject*CCL_API compileScript (const IScript& script) = 0
Compile script, can be executed later via IObject::invokeMethod.
virtual void CCL_API garbageCollect (tbool force) = 0
Check garbage collection.
virtual tbool CCL_API removeReference (IUnknown* nativeObject) = 0
Remove reference to given native object from context.
virtual void CCL_API dump () = 0
Dump context information to debug output.
DECLARE_STRINGID_MEMBER (kStubObjectsEnabled)
< enable host strings, i.e. use CCL::String instead of IStringValue
< enable memory allocation logging (debug build)