Esempio n. 1
0
JS::Value CMessage::ToJSValCached(ScriptInterface& scriptInterface) const
{
	if (!m_Cached)
		m_Cached.reset(new JS::PersistentRootedValue(scriptInterface.GetJSRuntime(), ToJSVal(scriptInterface)));

	return m_Cached->get();
}
Esempio n. 2
0
CStdDeserializer::CStdDeserializer(ScriptInterface& scriptInterface, std::istream& stream) :
	m_ScriptInterface(scriptInterface), m_Stream(stream),
	m_dummyObject(scriptInterface.GetJSRuntime())
{
	JSContext* cx = m_ScriptInterface.GetContext();
	JSAutoRequest rq(cx);

	JS_AddExtraGCRootsTracer(m_ScriptInterface.GetJSRuntime(), CStdDeserializer::Trace, this);

	// Add a dummy tag because the serializer uses the tag 0 to indicate that a value
	// needs to be serialized and then tagged
	m_dummyObject = JS_NewPlainObject(cx);
	m_ScriptBackrefs.push_back(JS::Heap<JSObject*>(m_dummyObject));
}
Esempio n. 3
0
CComponentTypeScript::CComponentTypeScript(ScriptInterface& scriptInterface, JS::HandleValue instance) :
	m_ScriptInterface(scriptInterface), m_Instance(scriptInterface.GetJSRuntime(), instance)
{
	// Cache the property detection for efficiency
	JSContext* cx = m_ScriptInterface.GetContext();
	JSAutoRequest rq(cx);
	
	m_HasCustomSerialize = m_ScriptInterface.HasProperty(m_Instance, "Serialize");
	m_HasCustomDeserialize = m_ScriptInterface.HasProperty(m_Instance, "Deserialize");

	m_HasNullSerialize = false;
	if (m_HasCustomSerialize)
	{
		JS::RootedValue val(cx);
		if (m_ScriptInterface.GetProperty(m_Instance, "Serialize", &val) && val.isNull())
			m_HasNullSerialize = true;
	}
}
Esempio n. 4
0
CGameSetupMessage::CGameSetupMessage(ScriptInterface& scriptInterface, JS::HandleValue data) :
    CNetMessage(NMT_GAME_SETUP), m_ScriptInterface(scriptInterface),
    m_Data(scriptInterface.GetJSRuntime(), data)
{
}
Esempio n. 5
0
CGameSetupMessage::CGameSetupMessage(ScriptInterface& scriptInterface) :
    CNetMessage(NMT_GAME_SETUP), m_ScriptInterface(scriptInterface), m_Data(scriptInterface.GetJSRuntime())
{
}
Esempio n. 6
0
CSimulationMessage::CSimulationMessage(ScriptInterface& scriptInterface, u32 client, i32 player, u32 turn, JS::HandleValue data) :
    CNetMessage(NMT_SIMULATION_COMMAND), m_ScriptInterface(&scriptInterface),
    m_Client(client), m_Player(player), m_Turn(turn), m_Data(scriptInterface.GetJSRuntime(), data)
{
}
Esempio n. 7
0
CSimulationMessage::CSimulationMessage(ScriptInterface& scriptInterface) :
    CNetMessage(NMT_SIMULATION_COMMAND), m_ScriptInterface(&scriptInterface), m_Data(scriptInterface.GetJSRuntime())
{
}
Esempio n. 8
0
	CMessageScripted(ScriptInterface& scriptInterface, int mtid, const std::string& name, JS::HandleValue msg) :
		mtid(mtid), handlerName("On" + name), globalHandlerName("OnGlobal" + name), msg(scriptInterface.GetJSRuntime(), msg)
	{
	}