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

View File

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