LuaRef
Lua Bridge is not just a one-way street, after all, it is a bridge. To read Lua values in C, Lua Bridge provides the LuaRef
class. A LuaRef
variable can hold any value that a Lua variable can. The getGlobal(lua_State*, const char*)
function will return any global Lua variable as a LuaRef
value. Consider the following Lua code:
foo = "Hello, world" bar = 42 debug = function() print (foo .. " & " .. bar) end
These variables can be retrieved in C or C++ by using the getGlobal
function. A LuaRef
object can even be called as a function, if it is assigned to one. The following code demonstrates this:
LuaRef foo = getGlobal(L, "foo"); LuaRef bar = getGlobal(L, "bar"); LuaRef debug = getGlobal(L, "debug"); bar = 57; debug();
LuaRef
variables have a cast<T>
member function that will convert a given LuaRef
value into whatever it is being cast to. The following code sample demonstrates this:
LuaRef foo = getGlobal(L, "foo"); printf("foo: %s \n", foo.cast<const char*>());