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 ", foo.cast<const char*>());
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.137.186.178