Pyrogenesis  trunk
Macros | Functions
MessageTypeConversions.cpp File Reference
#include "precompiled.h"
#include "ps/CLogger.h"
#include "scriptinterface/ScriptInterface.h"
#include "simulation2/MessageTypes.h"
#include "simulation2/TypeList.h"
Include dependency graph for MessageTypeConversions.cpp:

Macros

#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

CMessageCMessageFromJSVal (int mtid, ScriptInterface &scriptingInterface, JS::HandleValue val)
 

Macro Definition Documentation

#define COMPONENT (   name)
#define FROMJSVAL_SETUP ( )
Value:
JSContext* cx = scriptInterface.GetContext(); \
JSAutoRequest rq(cx); \
if (val.isPrimitive()) \
return NULL; \
JS::RootedObject obj(cx, &val.toObject()); \
JS::RootedValue prop(cx);
#define GET_MSG_PROPERTY (   type,
  name 
)
Value:
type name; \
{ \
if (! JS_GetProperty(cx, obj, #name, &prop)) \
return NULL; \
if (! ScriptInterface::FromJSVal(cx, prop, name)) \
return NULL; \
}
static bool FromJSVal(JSContext *cx, const JS::HandleValue val, T &ret)
Convert a jsval to a C++ type.
#define INTERFACE (   name)
#define MESSAGE (   name)    case MT_##name: return CMessage##name::FromJSVal(scriptingInterface, val);
#define MESSAGE_1 (   name,
  t0,
  a0 
)
Value:
JS::Value CMessage##name::ToJSVal(ScriptInterface& scriptInterface) const \
{ \
return JS::ObjectValue(*obj); \
} \
CMessage* CMessage##name::FromJSVal(ScriptInterface& scriptInterface, JS::HandleValue val) \
{ \
return new CMessage##name(a0); \
}
Config::Value_type Value
Definition: json_spirit_value.h:181
#define TOJSVAL_SETUP()
Definition: MessageTypeConversions.cpp:24
#define GET_MSG_PROPERTY(type, name)
Definition: MessageTypeConversions.cpp:47
#define SET_MSG_PROPERTY(name)
Definition: MessageTypeConversions.cpp:31
Abstraction around a SpiderMonkey JSContext.
Definition: ScriptInterface.h:71
#define FROMJSVAL_SETUP()
Definition: MessageTypeConversions.cpp:39
Definition: Message.h:24
#define SET_MSG_PROPERTY (   name)
Value:
do { \
JS::RootedValue prop(cx);\
ScriptInterface::ToJSVal(cx, &prop, this->name); \
if (! JS_SetProperty(cx, obj, #name, prop)) \
return JS::UndefinedValue(); \
} while (0);
static void ToJSVal(JSContext *cx, JS::MutableHandleValue ret, T const &val)
Convert a C++ type to a jsval.
#define TOJSVAL_SETUP ( )
Value:
JSContext* cx = scriptInterface.GetContext(); \
JSAutoRequest rq(cx); \
JS::RootedObject obj(cx, JS_NewPlainObject(cx)); \
if (!obj) \
return JS::UndefinedValue();

Function Documentation

CMessage* CMessageFromJSVal ( int  mtid,
ScriptInterface scriptingInterface,
JS::HandleValue  val 
)