TITANIUM_FUNCTION(SocketModule, createUDP)
		{
			TITANIUM_LOG_DEBUG("SocketModule::createUDP: ");
			
			ENSURE_OPTIONAL_OBJECT_AT_INDEX(parameters, 0);

			JSValue Titanium_property = get_context().get_global_object().GetProperty("Titanium");
			TITANIUM_ASSERT(Titanium_property.IsObject());  // precondition
			JSObject Titanium = static_cast<JSObject>(Titanium_property);

			JSValue Network_property = Titanium.GetProperty("Network");
			TITANIUM_ASSERT(Network_property.IsObject());  // precondition
			JSObject Network = static_cast<JSObject>(Network_property);

			JSValue Socket_property = Network.GetProperty("Socket");
			TITANIUM_ASSERT(Socket_property.IsObject());  // precondition
			JSObject Socket = static_cast<JSObject>(Socket_property);

			JSValue UDP_property = Socket.GetProperty("UDP");
			TITANIUM_ASSERT(UDP_property.IsObject());  // precondition
			JSObject UDP = static_cast<JSObject>(UDP_property);

			auto udp = UDP.CallAsConstructor();
			applyProperties(parameters, udp);
			return udp;
		}
コード例 #2
0
	TITANIUM_FUNCTION(UIModule, create2DMatrix)
	{
		ENSURE_OPTIONAL_OBJECT_AT_INDEX(parameters, 0);
		
		// FIXME Macros didn't work because identifiers can't start with digits!
		JSValue Titanium_property = this_object.get_context().get_global_object().GetProperty("Titanium");
		TITANIUM_ASSERT(Titanium_property.IsObject());
		JSObject Titanium = static_cast<JSObject>(Titanium_property);
		JSValue UI_property = Titanium.GetProperty("UI");
		TITANIUM_ASSERT(UI_property.IsObject());
		JSObject UI = static_cast<JSObject>(UI_property);
		JSValue TwoDMatrix_property = UI.GetProperty("2DMatrix");
		TITANIUM_ASSERT(TwoDMatrix_property.IsObject());
		JSObject TwoDMatrix = static_cast<JSObject>(TwoDMatrix_property);
		auto TwoDMatrix_obj = TwoDMatrix.CallAsConstructor(parameters);
		Titanium::Module::applyProperties(parameters, TwoDMatrix_obj);
		return TwoDMatrix_obj;
	}