From 5c48d7a378ff066f59b9cee02f2803ebe1616481 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Thu, 22 Nov 2012 04:05:09 +0000 Subject: factor out common HandleShow code for "show uptime" --- OpenSim/Framework/Servers/ServerBase.cs | 50 +++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) (limited to 'OpenSim/Framework/Servers/ServerBase.cs') diff --git a/OpenSim/Framework/Servers/ServerBase.cs b/OpenSim/Framework/Servers/ServerBase.cs index d19234b..afe1f73 100644 --- a/OpenSim/Framework/Servers/ServerBase.cs +++ b/OpenSim/Framework/Servers/ServerBase.cs @@ -26,13 +26,20 @@ */ using System; +using System.Collections.Generic; using System.Text; +using OpenSim.Framework.Console; namespace OpenSim.Framework.Servers { public class ServerBase { /// + /// Console to be used for any command line output. Can be null, in which case there should be no output. + /// + protected ICommandConsole m_console; + + /// /// Time at which this server was started /// protected DateTime m_startuptime; @@ -42,6 +49,22 @@ namespace OpenSim.Framework.Servers m_startuptime = DateTime.Now; } + public virtual void HandleShow(string module, string[] cmd) + { + List args = new List(cmd); + + args.RemoveAt(0); + + string[] showParams = args.ToArray(); + + switch (showParams[0]) + { + case "uptime": + Notice(GetUptimeReport()); + break; + } + } + /// /// Return a report about the uptime of this server /// @@ -54,5 +77,32 @@ namespace OpenSim.Framework.Servers return sb.ToString(); } + + /// + /// Console output is only possible if a console has been established. + /// That is something that cannot be determined within this class. So + /// all attempts to use the console MUST be verified. + /// + /// + protected void Notice(string msg) + { + if (m_console != null) + { + m_console.Output(msg); + } + } + + /// + /// Console output is only possible if a console has been established. + /// That is something that cannot be determined within this class. So + /// all attempts to use the console MUST be verified. + /// + /// + /// + protected void Notice(string format, params string[] components) + { + if (m_console != null) + m_console.OutputFormat(format, components); + } } } \ No newline at end of file -- cgit v1.1