From 5dbdd5f8b4856357340357394edc2f9e229a0582 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Sat, 6 Jul 2013 00:12:48 +0100 Subject: refactor: Make stats and sim status simpler by extending BaseStreamHandler like other handlers instead of implementing the IStreamedRequestHandler interface directly --- OpenSim/Region/Application/OpenSimBase.cs | 74 +++++++------------------------ 1 file changed, 17 insertions(+), 57 deletions(-) (limited to 'OpenSim/Region/Application') diff --git a/OpenSim/Region/Application/OpenSimBase.cs b/OpenSim/Region/Application/OpenSimBase.cs index 7ca87a3..841069c 100644 --- a/OpenSim/Region/Application/OpenSimBase.cs +++ b/OpenSim/Region/Application/OpenSimBase.cs @@ -759,73 +759,49 @@ namespace OpenSim /// /// Handler to supply the current status of this sim /// + /// /// Currently this is always OK if the simulator is still listening for connections on its HTTP service - public class SimStatusHandler : IStreamedRequestHandler + /// + public class SimStatusHandler : BaseStreamHandler { - public byte[] Handle(string path, Stream request, + public SimStatusHandler() : base("GET", "/simstatus", "SimStatus", "Simulator Status") {} + + public override byte[] Handle(string path, Stream request, IOSHttpRequest httpRequest, IOSHttpResponse httpResponse) { return Util.UTF8.GetBytes("OK"); } - public string Name { get { return "SimStatus"; } } - public string Description { get { return "Simulator Status"; } } - - public string ContentType + public override string ContentType { get { return "text/plain"; } } - - public string HttpMethod - { - get { return "GET"; } - } - - public string Path - { - get { return "/simstatus"; } - } } /// /// Handler to supply the current extended status of this sim /// Sends the statistical data in a json serialization /// - public class XSimStatusHandler : IStreamedRequestHandler + public class XSimStatusHandler : BaseStreamHandler { OpenSimBase m_opensim; - string osXStatsURI = String.Empty; - - public string Name { get { return "XSimStatus"; } } - public string Description { get { return "Simulator XStatus"; } } - public XSimStatusHandler(OpenSimBase sim) + public XSimStatusHandler(OpenSimBase sim) + : base("GET", "/" + Util.SHA1Hash(sim.osSecret), "XSimStatus", "Simulator XStatus") { m_opensim = sim; - osXStatsURI = Util.SHA1Hash(sim.osSecret); } - public byte[] Handle(string path, Stream request, + public override byte[] Handle(string path, Stream request, IOSHttpRequest httpRequest, IOSHttpResponse httpResponse) { return Util.UTF8.GetBytes(m_opensim.StatReport(httpRequest)); } - public string ContentType + public override string ContentType { get { return "text/plain"; } } - - public string HttpMethod - { - get { return "GET"; } - } - - public string Path - { - // This is for the OpenSimulator instance and is the osSecret hashed - get { return "/" + osXStatsURI; } - } } /// @@ -834,42 +810,26 @@ namespace OpenSim /// If the request contains a key, "callback" the response will be wrappend in the /// associated value for jsonp used with ajax/javascript /// - public class UXSimStatusHandler : IStreamedRequestHandler + public class UXSimStatusHandler : BaseStreamHandler { OpenSimBase m_opensim; - string osUXStatsURI = String.Empty; - - public string Name { get { return "UXSimStatus"; } } - public string Description { get { return "Simulator UXStatus"; } } public UXSimStatusHandler(OpenSimBase sim) + : base("GET", "/" + sim.userStatsURI, "UXSimStatus", "Simulator UXStatus") { - m_opensim = sim; - osUXStatsURI = sim.userStatsURI; - + m_opensim = sim; } - public byte[] Handle(string path, Stream request, + public override byte[] Handle(string path, Stream request, IOSHttpRequest httpRequest, IOSHttpResponse httpResponse) { return Util.UTF8.GetBytes(m_opensim.StatReport(httpRequest)); } - public string ContentType + public override string ContentType { get { return "text/plain"; } } - - public string HttpMethod - { - get { return "GET"; } - } - - public string Path - { - // This is for the OpenSimulator instance and is the user provided URI - get { return "/" + osUXStatsURI; } - } } #endregion -- cgit v1.1