#include "precompiled.h"#include "ps/CLogger.h"#include "scriptinterface/ScriptInterface.h"#include "simulation2/MessageTypes.h"#include "js/jsapi.h"#include "simulation2/TypeList.h"Defines | |
| #define | TOJSVAL_SETUP() |
| #define | SET_MSG_PROPERTY(name) |
| #define | FROMJSVAL_SETUP() |
| #define | GET_MSG_PROPERTY(type, name) |
| #define | MESSAGE_1(name, t0, a0) |
| #define | MESSAGE(name) case MT_##name: return CMessage##name::FromJSVal(scriptingInterface, val); |
| #define | INTERFACE(name) |
| #define | COMPONENT(name) |
Functions | |
| CMessage * | CMessageFromJSVal (int mtid, ScriptInterface &scriptingInterface, jsval val) |
| #define COMPONENT | ( | name | ) |
| #define FROMJSVAL_SETUP | ( | ) |
if (! JSVAL_IS_OBJECT(val)) \ return NULL; \ JSObject* obj = JSVAL_TO_OBJECT(val); \ jsval prop;
| #define GET_MSG_PROPERTY | ( | type, | |||
| name | ) |
if (! JS_GetProperty(scriptInterface.GetContext(), obj, #name, &prop)) \ return NULL; \ type name; \ if (! ScriptInterface::FromJSVal(scriptInterface.GetContext(), prop, name)) \ return NULL;
| #define INTERFACE | ( | name | ) |
| #define MESSAGE | ( | name | ) | case MT_##name: return CMessage##name::FromJSVal(scriptingInterface, val); |
| #define MESSAGE_1 | ( | name, | |||
| t0, | |||||
| a0 | ) |
jsval CMessage##name::ToJSVal(ScriptInterface& scriptInterface) const \ { \ TOJSVAL_SETUP(); \ SET_MSG_PROPERTY(a0); \ return OBJECT_TO_JSVAL(obj); \ } \ CMessage* CMessage##name::FromJSVal(ScriptInterface& scriptInterface, jsval val) \ { \ FROMJSVAL_SETUP(); \ GET_MSG_PROPERTY(t0, a0); \ return new CMessage##name(a0); \ }
| #define SET_MSG_PROPERTY | ( | name | ) |
do { \ jsval prop = ScriptInterface::ToJSVal(scriptInterface.GetContext(), this->name); \ if (! JS_SetProperty(scriptInterface.GetContext(), obj, #name, &prop)) \ return JSVAL_VOID; \ } while (0);
| #define TOJSVAL_SETUP | ( | ) |
JSObject* obj = JS_NewObject(scriptInterface.GetContext(), NULL, NULL, NULL); \
if (! obj) \
return JSVAL_VOID;
| CMessage* CMessageFromJSVal | ( | int | mtid, | |
| ScriptInterface & | scriptingInterface, | |||
| jsval | val | |||
| ) |
1.6.3