diff --git a/OpenSim/Region/ScriptEngine/Interfaces/IScriptInstance.cs b/OpenSim/Region/ScriptEngine/Interfaces/IScriptInstance.cs
index 40c2fd2cc9..6f422bd455 100644
--- a/OpenSim/Region/ScriptEngine/Interfaces/IScriptInstance.cs
+++ b/OpenSim/Region/ScriptEngine/Interfaces/IScriptInstance.cs
@@ -201,7 +201,7 @@ namespace OpenSim.Region.ScriptEngine.Interfaces
/// Process the next event queued for this script instance.
///
///
- object EventProcessor();
+ void EventProcessor();
int EventTime();
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/AsyncCommandManager.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/AsyncCommandManager.cs
index 2ccad2eff5..4969e33673 100755
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/AsyncCommandManager.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/AsyncCommandManager.cs
@@ -36,7 +36,7 @@ using OpenSim.Region.Framework.Interfaces;
using OpenSim.Region.ScriptEngine.Interfaces;
using OpenSim.Region.ScriptEngine.Shared;
using OpenSim.Region.ScriptEngine.Shared.Api.Plugins;
-using Timer=OpenSim.Region.ScriptEngine.Shared.Api.Plugins.Timer;
+using ScriptTimer=OpenSim.Region.ScriptEngine.Shared.Api.Plugins.ScriptTimer;
using System.Reflection;
using log4net;
@@ -68,8 +68,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
private static Dictionary m_Dataserver =
new Dictionary();
- private static Dictionary m_Timer =
- new Dictionary();
+ private static Dictionary m_ScriptTimer =
+ new Dictionary();
private static Dictionary m_Listener =
new Dictionary();
private static Dictionary m_HttpRequest =
@@ -88,12 +88,12 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
}
}
- public Timer TimerPlugin
+ public ScriptTimer TimerPlugin
{
get
{
lock (staticLock)
- return m_Timer[m_ScriptEngine];
+ return m_ScriptTimer[m_ScriptEngine];
}
}
@@ -161,8 +161,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
// Create instances of all plugins
if (!m_Dataserver.ContainsKey(m_ScriptEngine))
m_Dataserver[m_ScriptEngine] = new Dataserver(this);
- if (!m_Timer.ContainsKey(m_ScriptEngine))
- m_Timer[m_ScriptEngine] = new Timer(this);
+ if (!m_ScriptTimer.ContainsKey(m_ScriptEngine))
+ m_ScriptTimer[m_ScriptEngine] = new ScriptTimer(this);
if (!m_HttpRequest.ContainsKey(m_ScriptEngine))
m_HttpRequest[m_ScriptEngine] = new HttpRequest(this);
if (!m_Listener.ContainsKey(m_ScriptEngine))
@@ -258,8 +258,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
// Check Listeners
try { m_Listener[s].CheckListeners(); } catch {}
- // Check timers
- try { m_Timer[s].CheckTimerEvents(); } catch {}
+ // Check ScriptTimers
+ try { m_ScriptTimer[s].CheckTimerEvents(); } catch {}
// Check Sensors
try { m_SensorRepeat[s].CheckSenseRepeaterEvents(); } catch {}
@@ -285,8 +285,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
// Remove dataserver events
m_Dataserver[engine].RemoveEvents(localID, itemID);
- // Remove from: Timers
- m_Timer[engine].UnSetTimerEvents(localID, itemID);
+ // Remove from: ScriptTimers
+ m_ScriptTimer[engine].UnSetTimerEvents(localID, itemID);
if(engine.World != null)
{
@@ -366,16 +366,16 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
}
///
- /// Get the timer plugin for this script engine.
+ /// Get the ScriptTimer plugin for this script engine.
///
///
///
- public static Timer GetTimerPlugin(IScriptEngine engine)
+ public static ScriptTimer GetTimerPlugin(IScriptEngine engine)
{
lock (staticLock)
{
- if (m_Timer.ContainsKey(engine))
- return m_Timer[engine];
+ if (m_ScriptTimer.ContainsKey(engine))
+ return m_ScriptTimer[engine];
else
return null;
}
@@ -411,12 +411,12 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
data.AddRange(listeners);
}
- Object[] timers=m_Timer[engine].GetSerializationData(itemID);
- if (timers.Length > 0)
+ Object[] ScriptTimers=m_ScriptTimer[engine].GetSerializationData(itemID);
+ if (ScriptTimers.Length > 0)
{
data.Add("timer");
- data.Add(timers.Length);
- data.AddRange(timers);
+ data.Add(ScriptTimers.Length);
+ data.AddRange(ScriptTimers);
}
Object[] sensors = m_SensorRepeat[engine].GetSerializationData(itemID);
@@ -459,7 +459,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
hostID, item);
break;
case "timer":
- m_Timer[engine].CreateFromData(localID, itemID,
+ m_ScriptTimer[engine].CreateFromData(localID, itemID,
hostID, item);
break;
case "sensor":
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/Timer.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/Timer.cs
deleted file mode 100644
index f8dea98eea..0000000000
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/Timer.cs
+++ /dev/null
@@ -1,206 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSimulator Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using OpenMetaverse;
-using OpenSim.Region.ScriptEngine.Shared.Api;
-
-namespace OpenSim.Region.ScriptEngine.Shared.Api.Plugins
-{
- public class Timer
- {
- public class TimerInfo
- {
- public uint localID;
- public UUID itemID;
- //public double interval;
- public long interval;
- //public DateTime next;
- public long next;
-
- public TimerInfo Clone()
- {
- return (TimerInfo)this.MemberwiseClone();
- }
- }
-
- public AsyncCommandManager m_CmdManager;
-
- public int TimersCount
- {
- get
- {
- lock (TimerListLock)
- return Timers.Count;
- }
- }
-
- public Timer(AsyncCommandManager CmdManager)
- {
- m_CmdManager = CmdManager;
- }
-
- //
- // TIMER
- //
- static private string MakeTimerKey(uint localID, UUID itemID)
- {
- return localID.ToString() + itemID.ToString();
- }
-
- private Dictionary Timers = new Dictionary();
- private object TimerListLock = new object();
-
- public void SetTimerEvent(uint m_localID, UUID m_itemID, double sec)
- {
- if (sec == 0) // Disabling timer
- {
- UnSetTimerEvents(m_localID, m_itemID);
- return;
- }
-
- // Add to timer
- TimerInfo ts = new TimerInfo();
- ts.localID = m_localID;
- ts.itemID = m_itemID;
- ts.interval = Convert.ToInt64(sec * 10000000); // How many 100 nanoseconds (ticks) should we wait
- // 2193386136332921 ticks
- // 219338613 seconds
-
- //ts.next = DateTime.Now.ToUniversalTime().AddSeconds(ts.interval);
- ts.next = DateTime.Now.Ticks + ts.interval;
-
- string key = MakeTimerKey(m_localID, m_itemID);
- lock (TimerListLock)
- {
- // Adds if timer doesn't exist, otherwise replaces with new timer
- Timers[key] = ts;
- }
- }
-
- public void UnSetTimerEvents(uint m_localID, UUID m_itemID)
- {
- // Remove from timer
- string key = MakeTimerKey(m_localID, m_itemID);
- lock (TimerListLock)
- {
- if (Timers.TryGetValue(key, out TimerInfo ts))
- {
- m_CmdManager.m_ScriptEngine.CancelScriptEvent(ts.itemID, "timer");
- Timers.Remove(key);
- }
- }
- }
-
- public void CheckTimerEvents()
- {
- // Nothing to do here?
- if (Timers.Count == 0)
- return;
-
- Dictionary tvals;
- lock (TimerListLock)
- {
- // Go through all timers
- tvals = new Dictionary(Timers);
- }
-
- foreach (TimerInfo ts in tvals.Values)
- {
- // Time has passed?
- if (ts.next < DateTime.Now.Ticks)
- {
- //m_log.Debug("Time has passed: Now: " + DateTime.Now.Ticks + ", Passed: " + ts.next);
- // Add it to queue
- m_CmdManager.m_ScriptEngine.PostScriptEvent(ts.itemID,
- new EventParams("timer", new Object[0],
- new DetectParams[0]));
- // set next interval
-
- //ts.next = DateTime.Now.ToUniversalTime().AddSeconds(ts.interval);
- ts.next = DateTime.Now.Ticks + ts.interval;
- }
- }
- }
-
- public Object[] GetSerializationData(UUID itemID)
- {
- List