change SimpleStreamHandler to have a processor method argument

master
UbitUmarov 2020-04-23 22:30:40 +01:00
parent 46162e620a
commit 426d83c535
3 changed files with 26 additions and 9 deletions

View File

@ -97,6 +97,7 @@ namespace OpenSim.Framework.Servers.HttpServer
/// </summary>
/// <param name="handler"></param>
void AddStreamHandler(IRequestHandler handler);
void AddSimpleStreamHandler(ISimpleStreamHandler handler);
bool AddXmlRPCHandler(string method, XmlRpcMethod handler);
bool AddXmlRPCHandler(string method, XmlRpcMethod handler, bool keepAlive);
@ -141,6 +142,7 @@ namespace OpenSim.Framework.Servers.HttpServer
bool RemoveLLSDHandler(string path, LLSDMethod handler);
void RemoveStreamHandler(string httpMethod, string path);
void RemoveSimpleStreamHandler(string path);
void RemoveXmlRPCHandler(string method);

View File

@ -101,4 +101,6 @@ namespace OpenSim.Framework.Servers.HttpServer
// Handle request stream, return byte array
void Handle(IOSHttpRequest httpRequest, IOSHttpResponse httpResponse);
}
public delegate void SimpleStreamMethod(IOSHttpRequest httpRequest, IOSHttpResponse httpResponse);
}

View File

@ -38,28 +38,39 @@ namespace OpenSim.Framework.Servers.HttpServer
/// <remarks>
/// Inheriting classes should override ProcessRequest() rather than Handle()
/// </remarks>
public abstract class SimpleStreamHandler : SimpleBaseRequestHandler, ISimpleStreamHandler
public class SimpleStreamHandler : SimpleBaseRequestHandler, ISimpleStreamHandler
{
protected IServiceAuth m_Auth;
protected SimpleStreamMethod m_processRequest;
protected SimpleStreamHandler(string path) : this(path, null, null) { }
public SimpleStreamHandler(string path) : base(path, null, null) { }
public SimpleStreamHandler(string path, string name, string description) : base(path, name, description) { }
protected SimpleStreamHandler(string path, string name, string description)
: base(path, name, description) { }
public SimpleStreamHandler(string path, SimpleStreamMethod processRequest) : base(path, null, null)
{
m_processRequest = processRequest;
}
protected SimpleStreamHandler(string path, IServiceAuth auth)
public SimpleStreamHandler(string path, IServiceAuth auth) : base(path, null, null)
{
m_Auth = auth;
}
public SimpleStreamHandler(string path, IServiceAuth auth, SimpleStreamMethod processRequest)
: base(path, null, null)
{
m_Auth = auth;
m_processRequest = processRequest;
}
protected SimpleStreamHandler(string path, IServiceAuth auth, string name, string description)
public SimpleStreamHandler(string path, IServiceAuth auth, SimpleStreamMethod processRequest, string name, string description)
: base(path, name, description)
{
m_Auth = auth;
m_processRequest = processRequest;
}
public virtual void Handle(IOSHttpRequest httpRequest, IOSHttpResponse httpResponse)
public virtual void Handle(IOSHttpRequest httpRequest, IOSHttpResponse httpResponse)
{
RequestsReceived++;
@ -73,8 +84,10 @@ namespace OpenSim.Framework.Servers.HttpServer
return;
}
}
ProcessRequest(httpRequest, httpResponse);
if(m_processRequest != null)
m_processRequest(httpRequest, httpResponse);
else
ProcessRequest(httpRequest, httpResponse);
RequestsHandled++;
}