From a3ac702941bbae92ca5a3ed452eb3d417bf30f0b Mon Sep 17 00:00:00 2001 From: Dr Scofield Date: Wed, 28 Jan 2009 09:22:12 +0000 Subject: From: Christopher Yeoh Adding Oarfileloaded and EmptyScriptCompileQueue event support which allows (with a module) for programmatic notification of when a region objects and scripts are up and running after a server start or load-oar. --- OpenSim/Region/Environment/Scenes/EventManager.cs | 31 +++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'OpenSim/Region/Environment/Scenes/EventManager.cs') diff --git a/OpenSim/Region/Environment/Scenes/EventManager.cs b/OpenSim/Region/Environment/Scenes/EventManager.cs index b493f84..1543bf0 100644 --- a/OpenSim/Region/Environment/Scenes/EventManager.cs +++ b/OpenSim/Region/Environment/Scenes/EventManager.cs @@ -266,6 +266,21 @@ namespace OpenSim.Region.Environment.Scenes public delegate float SunLindenHour(); public event SunLindenHour OnGetSunLindenHour; + /// + /// Called when oar file has finished loading, although + /// the scripts may not have started yet + /// Message is non empty string if there were problems loading the oar file + /// + public delegate void OarFileLoaded(string message); + public event OarFileLoaded OnOarFileLoaded; + + /// + /// Called when the script compile queue becomes empty + /// Returns the number of scripts which failed to start + /// + public delegate void EmptyScriptCompileQueue(int numScriptsFailed, string message); + public event EmptyScriptCompileQueue OnEmptyScriptCompileQueue; + public class MoneyTransferArgs : EventArgs { public UUID sender; @@ -399,6 +414,8 @@ namespace OpenSim.Region.Environment.Scenes private SunLindenHour handlerSunGetLindenHour = null; private OnSetRootAgentSceneDelegate handlerSetRootAgentScene = null; + private OarFileLoaded handlerOarFileLoaded = null; + private EmptyScriptCompileQueue handlerEmptyScriptCompileQueue = null; public void TriggerGetScriptRunning(IClientAPI controllingClient, UUID objectID, UUID itemID) { @@ -902,6 +919,20 @@ namespace OpenSim.Region.Environment.Scenes return 6; } + public void TriggerOarFileLoaded(string message) + { + handlerOarFileLoaded = OnOarFileLoaded; + if (handlerOarFileLoaded != null) + handlerOarFileLoaded(message); + } + + public void TriggerEmptyScriptCompileQueue(int numScriptsFailed, string message) + { + handlerEmptyScriptCompileQueue = OnEmptyScriptCompileQueue; + if (handlerEmptyScriptCompileQueue != null) + handlerEmptyScriptCompileQueue(numScriptsFailed, message); + } + public void TriggerScriptCollidingStart(uint localId, ColliderArgs colliders) { handlerCollidingStart = OnScriptColliderStart; -- cgit v1.1