From 279e0061c515ee0a03036bef68eea9738273d785 Mon Sep 17 00:00:00 2001 From: Johan Berntsson Date: Tue, 4 Mar 2008 05:31:54 +0000 Subject: Merged 3Di code that provides scene and avatar serialization, and plugin support for region move/split/merge. See ThirdParty/3Di/README.txt. Unless the new modules are used there should be no noticeable changes when running OpenSim. --- .../ServerPlugin/RegionMonitorPlugin.cs | 129 +++++++++++++++++++++ 1 file changed, 129 insertions(+) create mode 100644 ThirdParty/3Di/RegionMonitor/ServerPlugin/RegionMonitorPlugin.cs (limited to 'ThirdParty/3Di/RegionMonitor/ServerPlugin/RegionMonitorPlugin.cs') diff --git a/ThirdParty/3Di/RegionMonitor/ServerPlugin/RegionMonitorPlugin.cs b/ThirdParty/3Di/RegionMonitor/ServerPlugin/RegionMonitorPlugin.cs new file mode 100644 index 0000000..5d2df3a --- /dev/null +++ b/ThirdParty/3Di/RegionMonitor/ServerPlugin/RegionMonitorPlugin.cs @@ -0,0 +1,129 @@ +/* +* 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 OpenSim 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.Runtime.Remoting; +using System.Threading; +using Mono.Addins; +using OpenSim; +using OpenSim.Framework.Console; +using MonitorLib; + +[assembly:Addin] +[assembly:AddinDependency ("OpenSim", "0.5")] + +namespace OpenSim.ApplicationPlugins.RegionMonitor +{ + [Extension("/OpenSim/Startup")] + public class RegionMonitorPlugin : MonitorLibBase, IApplicationPlugin + { + protected Thread m_mointorThread; + protected static OpenSimMain m_openSimMain; + + public void Initialise(OpenSimMain opensim) + { + m_openSimMain = opensim; + Start(); + MainLog.Instance.Verbose("Monitor", "Region monitor is runing ..."); + } + + public void Close() + { + } + + public void Start() + { + // start monitor thread (remoting module) + m_mointorThread = new Thread(new ThreadStart(StartMonitor)); + m_mointorThread.IsBackground = true; + m_mointorThread.Start(); + } + + private void StartMonitor() + { + try + { + Object lockObj = new Object(); + + RemotingConfiguration.Configure("monitorS.config", false); + + lock (lockObj) + { + System.Threading.Monitor.Wait(lockObj); + } + } + catch (Exception e) + { + MainLog.Instance.Warn("MONITOR", "Error - " + e.Message); + } + } + + public override bool FetchInfo(out string outstr) + { + MainLog.Instance.Verbose("MONITOR", "Fetch Information from Region server"); + bool status = true; + string startTime = ""; + string upTime = ""; + int userNumber = 0; + int regionNumber = 0; + m_openSimMain.GetRunTime(out startTime, out upTime); + m_openSimMain.GetAvatarNumber(out userNumber); + m_openSimMain.GetRegionNumber(out regionNumber); + outstr = startTime + + "," + upTime + + "," + regionNumber + + "," + userNumber; + return status; + } + + + public override bool MoveRegion() + { + MainLog.Instance.Verbose("MONITOR", "Move Region"); + bool status = true; + + return status; + } + + public override bool SplitRegion() + { + MainLog.Instance.Verbose("MONITOR", "Split Region"); + bool status = true; + + return status; + } + + public override bool MergeScenes() + { + MainLog.Instance.Verbose("MONITOR", "Merge Scenes"); + bool status = true; + + return status; + } + + } +} -- cgit v1.1