aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/LuaSL
diff options
context:
space:
mode:
authorDavid Walter Seikel2012-02-10 18:11:30 +1000
committerDavid Walter Seikel2012-02-10 18:11:30 +1000
commit937c87951799f5a4bcbbbaabb7e819052dcebd8a (patch)
treed61472b47f96483cc2f2279de0a4b88afb011503 /LuaSL
parentMore design notes. (diff)
downloadSledjHamr-937c87951799f5a4bcbbbaabb7e819052dcebd8a.zip
SledjHamr-937c87951799f5a4bcbbbaabb7e819052dcebd8a.tar.gz
SledjHamr-937c87951799f5a4bcbbbaabb7e819052dcebd8a.tar.bz2
SledjHamr-937c87951799f5a4bcbbbaabb7e819052dcebd8a.tar.xz
Think I sorted out what OpenSim does with script UUIDs, and that C# has suitable introspection.
Diffstat (limited to 'LuaSL')
-rw-r--r--LuaSL/src/LuaSL_runner.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/LuaSL/src/LuaSL_runner.c b/LuaSL/src/LuaSL_runner.c
index 5bb5e7a..c2bb8f0 100644
--- a/LuaSL/src/LuaSL_runner.c
+++ b/LuaSL/src/LuaSL_runner.c
@@ -180,14 +180,18 @@ void runnerTearDown(gameGlobals *game)
180 * It's easy enough to have a watchdog thread wake up every now and then to check if any given Lua state has been hogging it's CPU for too long. 180 * It's easy enough to have a watchdog thread wake up every now and then to check if any given Lua state has been hogging it's CPU for too long.
181 * The hard part is forcing Lua states to yield cleanly, without slowing performance too much. 181 * The hard part is forcing Lua states to yield cleanly, without slowing performance too much.
182 * 182 *
183 * Identifying scripts. 183 * Identifying scripts. - OpenSim/Region/ScriptEngine/Interfaces/IScriptInstance.cs
184 * 184 *
185 * We need to be able to identify scripts so that messages can get to the right ones. Also the objects they are in. 185 * We need to be able to identify scripts so that messages can get to the right ones. Also the objects they are in.
186 * And do it all in a way that OpenSim is happy with. 186 * And do it all in a way that OpenSim is happy with.
187 * Copies of the same script in the same prim would have the same UUID, but different name, though they would run independently. 187 * Copies of the same script in the same prim would have the same asset UUID, but different name, though they would run independently.
188 * Copies of the same script in different prims could have the same UUID AND the same name. 188 * Copies of the same script in different prims could have the same asset UUID AND the same name.
189 * OpenSim seems to be using a UUID to identify single scripts, and a uint to identify single prims, when sending events for either case.
190 * The UUID is from the script item in the prims inventory.
191 * There is also an asset UUID (the one printed out on the console at script startup time) that points to the source code in the prim.
192 * Which will be identical to the asset UUID for the multiple copies of the same script.
189 * 193 *
190 * Script start, stop, reset. 194 * Script start, stop, reset. - OpenSim/Region/ScriptEngine/Interfaces/IScriptEngine.cs
191 * 195 *
192 * Scripts and users have to be able to start, stop, and reset scripts. 196 * Scripts and users have to be able to start, stop, and reset scripts.
193 * Users have to be able to see the start / stopped status of scripts from the viewer. 197 * Users have to be able to see the start / stopped status of scripts from the viewer.
@@ -205,6 +209,8 @@ void runnerTearDown(gameGlobals *game)
205 * ROBUST uses HTTP for the communications, and some sort of XML, probably XML-RPC. 209 * ROBUST uses HTTP for the communications, and some sort of XML, probably XML-RPC.
206 * OpenSim has some sort of generic mechanism for talking to script engines in C#. I want to turn that into a socket based, pass textual Lua function calls, type system. 210 * OpenSim has some sort of generic mechanism for talking to script engines in C#. I want to turn that into a socket based, pass textual Lua function calls, type system.
207 * That assumes C# has some sort of semi decent introspection or reflection system. 211 * That assumes C# has some sort of semi decent introspection or reflection system.
212 * After a minimum of research, I have come to the conclusion that C# has suitable introspection, and will go ahead with my plans, leaving that problem to the C# coders.
213 * Looks like OpenSim is already using a bit of C# introspection for ll*() functions anyway.
208 * The scripts main loop can already deal with incoming commands as a string with a Lua function call in it. 214 * The scripts main loop can already deal with incoming commands as a string with a Lua function call in it.
209 * 215 *
210 * Send messages from / to Lua or C, and wait or not wait. 216 * Send messages from / to Lua or C, and wait or not wait.