39 #ifndef _PLT_HTTP_SERVER_TASK_H_
40 #define _PLT_HTTP_SERVER_TASK_H_
71 virtual NPT_Result SetupResponse(NPT_HttpRequest& request,
72 const NPT_HttpRequestContext& context,
73 NPT_HttpResponse& response) = 0;
76 virtual NPT_Result GetInputStream(NPT_InputStreamReference& stream);
77 virtual NPT_Result GetInfo(NPT_SocketInfo& info);
80 virtual void DoAbort() {
if (m_Socket) m_Socket->Cancel(); }
84 virtual NPT_Result Read(NPT_BufferedInputStreamReference& buffered_input_stream,
85 NPT_HttpRequest*& request,
86 NPT_HttpRequestContext* context = NULL);
87 virtual NPT_Result Write(NPT_HttpResponse* response,
89 bool headers_only =
false);
90 virtual NPT_Result RespondToClient(NPT_HttpRequest& request,
91 const NPT_HttpRequestContext& context,
92 NPT_HttpResponse*& response);
93 virtual NPT_Result SendResponseHeaders(NPT_HttpResponse* response,
94 NPT_OutputStream& output_stream,
96 virtual NPT_Result SendResponseBody(NPT_HttpResponse* response,
97 NPT_OutputStream& output_stream);
100 NPT_Socket* m_Socket;
101 bool m_StayAliveForever;
116 bool keep_alive =
false) :
122 NPT_Result SetupResponse(NPT_HttpRequest& request,
123 const NPT_HttpRequestContext& context,
124 NPT_HttpResponse& response) {
125 return m_Handler->SetupResponse(request, context, response);
129 NPT_HttpRequestHandler* m_Handler;
143 NPT_TcpServerSocket* socket,
144 bool owns_socket =
true) :
145 m_Handler(handler), m_Socket(socket), m_OwnsSocket(owns_socket) {}
149 if (m_OwnsSocket && m_Socket)
delete m_Socket;
154 virtual void DoAbort() {
if (m_Socket) m_Socket->Cancel(); }
155 virtual void DoRun();
158 NPT_HttpRequestHandler* m_Handler;
159 NPT_TcpServerSocket* m_Socket;
The PLT_HttpServerSocketTask class is a task used for handling one or more HTTP requests from a clien...
Definition: PltHttpServerTask.h:59
The PLT_HttpListenTask class is used by a PLT_HttpServer to listen for incoming connections and spawn...
Definition: PltHttpServerTask.h:139
Datagram Input/Output Neptune streams.
virtual void DoAbort()
This method to override in derived classes is called when the task is about to stop.
Definition: PltHttpServerTask.h:154
virtual void DoAbort()
This method to override in derived classes is called when the task is about to stop.
Definition: PltHttpServerTask.h:80
The PLT_HttpServerTask class is a version of PLT_HttpServerSocketTask that supports delegation of HTT...
Definition: PltHttpServerTask.h:111
virtual void DoRun()
This method to override in derived classes is the main task loop.
The PLT_ThreadTask class is a base class for executing a given task in a worker thread.
Definition: PltThreadTask.h:56
virtual void DoRun()
This method to override in derived classes is the main task loop.