Pyrogenesis  13997
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Classes | Macros
NativeWrapperDefns.h File Reference
#include "ps/GameSetup/Config.h"

Go to the source code of this file.

Classes

struct  ScriptInterface_NativeWrapper< R >
 
struct  ScriptInterface_NativeWrapper< void >
 
struct  ScriptInterface_NativeMethodWrapper< R, TC >
 
struct  ScriptInterface_NativeMethodWrapper< void, TC >
 

Macros

#define OVERLOADS(z, i, data)
 
#define OVERLOADS(z, i, data)
 
#define OVERLOADS(z, i, data)
 
#define OVERLOADS(z, i, data)
 
#define SCRIPT_PROFILE
 
#define OVERLOADS(z, i, data)
 
#define OVERLOADS(z, i, data)
 

Macro Definition Documentation

#define OVERLOADS (   z,
  i,
  data 
)
Value:
template<TYPENAME_T0_HEAD(z,i) typename F> \
static void call(JSContext* cx, jsval& rval, F fptr T0_A0(z,i)) { \
rval = ScriptInterface::ToJSVal<R>(cx, fptr(ScriptInterface::GetCallbackData(cx) A0_TAIL(z,i))); \
}
static const u8 F
Definition: cache.cpp:370
#define A0_TAIL(z, i)
#define T0_A0(z, i)
static void * GetCallbackData(JSContext *cx)

Definition at line 107 of file NativeWrapperDefns.h.

#define OVERLOADS (   z,
  i,
  data 
)
Value:
template<TYPENAME_T0_HEAD(z,i) typename F> \
static void call(JSContext* cx, jsval& /*rval*/, F fptr T0_A0(z,i)) { \
}
static const u8 F
Definition: cache.cpp:370
#define A0_TAIL(z, i)
#define T0_A0(z, i)
static void * GetCallbackData(JSContext *cx)

Definition at line 107 of file NativeWrapperDefns.h.

#define OVERLOADS (   z,
  i,
  data 
)
Value:
template<TYPENAME_T0_HEAD(z,i) typename F> \
static void call(JSContext* cx, jsval& rval, TC* c, F fptr T0_A0(z,i)) { \
rval = ScriptInterface::ToJSVal<R>(cx, (c->*fptr)( A0(z,i) )); \
}
static const u8 F
Definition: cache.cpp:370
#define T0_A0(z, i)
#define A0(z, i)

Definition at line 107 of file NativeWrapperDefns.h.

#define OVERLOADS (   z,
  i,
  data 
)
Value:
template<TYPENAME_T0_HEAD(z,i) typename F> \
static void call(JSContext* /*cx*/, jsval& /*rval*/, TC* c, F fptr T0_A0(z,i)) { \
(c->*fptr)( A0(z,i) ); \
}
static const u8 F
Definition: cache.cpp:370
#define T0_A0(z, i)
#define A0(z, i)

Definition at line 107 of file NativeWrapperDefns.h.

#define OVERLOADS (   z,
  i,
  data 
)
Value:
template <typename R, TYPENAME_T0_HEAD(z,i) R (*fptr) ( void* T0_TAIL(z,i) )> \
JSBool ScriptInterface::call(JSContext* cx, uintN argc, jsval* vp) { \
UNUSED2(argc); \
SCRIPT_PROFILE \
BOOST_PP_REPEAT_##z (i, CONVERT_ARG, ~) \
jsval rval = JSVAL_VOID; \
ScriptInterface_NativeWrapper<R>::call(cx, rval, fptr A0_TAIL(z,i)); \
JS_SET_RVAL(cx, vp, rval); \
return (ScriptInterface::IsExceptionPending(cx) ? JS_FALSE : JS_TRUE); \
}
#define A0_TAIL(z, i)
#define CONVERT_ARG(z, i, data)
static bool IsExceptionPending(JSContext *cx)
#define UNUSED2(param)
mark a function local variable or parameter as unused and avoid the corresponding compiler warning...

Definition at line 107 of file NativeWrapperDefns.h.

#define OVERLOADS (   z,
  i,
  data 
)
Value:
template <typename R, TYPENAME_T0_HEAD(z,i) JSClass* CLS, typename TC, R (TC::*fptr) ( T0(z,i) )> \
JSBool ScriptInterface::callMethod(JSContext* cx, uintN argc, jsval* vp) { \
UNUSED2(argc); \
SCRIPT_PROFILE \
if (ScriptInterface::GetClass(cx, JS_THIS_OBJECT(cx, vp)) != CLS) return JS_FALSE; \
TC* c = static_cast<TC*>(ScriptInterface::GetPrivate(cx, JS_THIS_OBJECT(cx, vp))); \
if (! c) return JS_FALSE; \
BOOST_PP_REPEAT_##z (i, CONVERT_ARG, ~) \
jsval rval = JSVAL_VOID; \
ScriptInterface_NativeMethodWrapper<R, TC>::call(cx, rval, c, fptr A0_TAIL(z,i)); \
JS_SET_RVAL(cx, vp, rval); \
return (ScriptInterface::IsExceptionPending(cx) ? JS_FALSE : JS_TRUE); \
}
#define UNUSED2(param)
mark a function local variable or parameter as unused and avoid the corresponding compiler warning...
static JSClass * GetClass(JSContext *cx, JSObject *obj)
static void * GetPrivate(JSContext *cx, JSObject *obj)
Abstraction around a SpiderMonkey JSContext.

Definition at line 107 of file NativeWrapperDefns.h.

#define SCRIPT_PROFILE
Value:
{ \
ENSURE(JSVAL_IS_OBJECT(JS_CALLEE(cx, vp)) && JS_ObjectIsFunction(cx, JSVAL_TO_OBJECT(JS_CALLEE(cx, vp)))); \
const char* name = "(unknown)"; \
jsval nameval; \
if (JS_GetReservedSlot(cx, JSVAL_TO_OBJECT(JS_CALLEE(cx, vp)), 0, &nameval) \
&& !JSVAL_IS_VOID(nameval)) \
name = static_cast<const char*>(JSVAL_TO_PRIVATE(nameval)); \
CProfileSampleScript profile(name); \
}
bool g_ScriptProfilingEnabled
Definition: Config.cpp:65
#define ENSURE(expr)
ensure the expression &lt;expr&gt; evaluates to non-zero.
Definition: debug.h:282

Definition at line 79 of file NativeWrapperDefns.h.