diff options
author | Nat Goodspeed <nat@lindenlab.com> | 2024-02-07 12:50:26 -0500 |
---|---|---|
committer | Nat Goodspeed <nat@lindenlab.com> | 2024-02-07 12:50:26 -0500 |
commit | 5b0404961e35ecca46148b90f2c27aed1bad607f (patch) | |
tree | 2ea3cd1c19e719536a57ff96aecb5e0347eb19c9 /indra/llcommon/llformat.h | |
parent | f664c2ea26fb63f162f3d988b6d00f1483be5d45 (diff) |
Add machinery to capture result of running a Lua script or snippet.
Add LuaState::expr() that evaluates a Lua snippet and reports back any result
(or error) left on the stack.
Add LLLUAmanager::runScriptFile() and runScriptLine() overloads that accept a
callback with an (int count, LLSD result) signature. The count disambiguates
(error, no result, one result, array of results). Also add overloads that accept
an existing LuaState instance. Also add waitScriptFile() and waitScriptLine()
methods that pause the calling coroutine until the Lua script completes, and
return its results.
Instead of giving LuaState a description to use for all subsequent checkLua()
calls, remove description from its constructor and data members. Move to
expr() and checkLua() parameters: we want a description specific to each
operation, rather than for the LuaState as a whole. This prepares for
persistent LuaState instances.
For now, the existing script_finished_fn semantics remain: the callback will
be called only when the LuaState is destroyed. This may need to change as we
migrate towards longer-lasting LuaState instances.
Make lua_function(name) macro append suffixes to the name for both the
LuaFunction subclass declaration and the instance declaration. This allows
publishing a lua_function() name such as sleep(), which already has a
different C++ declaration.
Move the Lua sleep() entry point to a standalone lua_function(sleep), instead
of a lambda in the body of runScriptFile().
Diffstat (limited to 'indra/llcommon/llformat.h')
0 files changed, 0 insertions, 0 deletions