|
| HttpServerConnection (std::shared_ptr< uv::Stream > stream) |
|
|
virtual void | ProcessRequest ()=0 |
| Process an incoming HTTP request. More...
|
|
virtual void | BuildCommonHeaders (raw_ostream &os) |
| Build common response headers. More...
|
|
void | BuildHeader (raw_ostream &os, int code, const Twine &codeText, const Twine &contentType, uint64_t contentLength, const Twine &extra=Twine{}) |
| Build HTTP response header, along with other header information like mimetype. More...
|
|
void | SendData (ArrayRef< uv::Buffer > bufs, bool closeAfter=false) |
| Send data to client. More...
|
|
void | SendResponse (int code, const Twine &codeText, const Twine &contentType, StringRef content, const Twine &extraHeader=Twine{}) |
| Send HTTP response, along with other header information like mimetype. More...
|
|
void | SendError (int code, const Twine &message=Twine{}) |
| Send error header and message. More...
|
|
virtual void wpi::HttpServerConnection::BuildCommonHeaders |
( |
raw_ostream & |
os | ) |
|
|
protectedvirtual |
Build common response headers.
Called by SendHeader() to send headers common to every response. Each line must be terminated with
.
The default implementation sends the following: "Server: WebServer/1.0\r\n" "Cache-Control: no-store, no-cache, must-revalidate, pre-check=0, " "post-check=0, max-age=0\r\n" "Pragma: no-cache\r\n" "Expires: Mon, 3 Jan 2000 12:34:56 GMT\r\n"
These parameters should ensure the browser does not cache the response. A browser should connect for each file and not serve files from its cache.
- Parameters
-
void wpi::HttpServerConnection::BuildHeader |
( |
raw_ostream & |
os, |
|
|
int |
code, |
|
|
const Twine & |
codeText, |
|
|
const Twine & |
contentType, |
|
|
uint64_t |
contentLength, |
|
|
const Twine & |
extra = Twine{} |
|
) |
| |
|
protected |
Build HTTP response header, along with other header information like mimetype.
Calls BuildCommonHeaders().
- Parameters
-
os | response stream |
code | HTTP response code (e.g. 200) |
codeText | HTTP response code text (e.g. "OK") |
contentType | MIME content type (e.g. "text/plain") |
contentLength | Length of content. If 0 is provided, m_keepAlive will be set to false. |
extra | Extra HTTP headers to send, not including final "\r\n" |
virtual void wpi::HttpServerConnection::ProcessRequest |
( |
| ) |
|
|
protectedpure virtual |
Process an incoming HTTP request.
This is called after the incoming message completes (e.g. from the HttpParser::messageComplete callback).
The implementation should read request details from m_request and call the appropriate Send() functions to send a response back to the client.
void wpi::HttpServerConnection::SendData |
( |
ArrayRef< uv::Buffer > |
bufs, |
|
|
bool |
closeAfter = false |
|
) |
| |
|
protected |
Send data to client.
This is a convenience wrapper around m_stream.Write() to provide auto-close functionality.
- Parameters
-
bufs | Buffers to write. Deallocate() will be called on each buffer after the write completes. If different behavior is desired, call m_stream.Write() directly instead. |
closeAfter | close the connection after the write completes |
void wpi::HttpServerConnection::SendError |
( |
int |
code, |
|
|
const Twine & |
message = Twine{} |
|
) |
| |
|
protected |
Send error header and message.
This provides standard code responses for 400, 401, 403, 404, 500, and 503. Other codes will be reported as 501. For arbitrary code handling, use SendResponse() instead.
- Parameters
-
code | HTTP error code (e.g. 404) |
message | Additional message text |
void wpi::HttpServerConnection::SendResponse |
( |
int |
code, |
|
|
const Twine & |
codeText, |
|
|
const Twine & |
contentType, |
|
|
StringRef |
content, |
|
|
const Twine & |
extraHeader = Twine{} |
|
) |
| |
|
protected |
Send HTTP response, along with other header information like mimetype.
Calls BuildHeader().
- Parameters
-
code | HTTP response code (e.g. 200) |
codeText | HTTP response code text (e.g. "OK") |
contentType | MIME content type (e.g. "text/plain") |
content | Response message content |
extraHeader | Extra HTTP headers to send, not including final "\r\n" |
bool wpi::HttpServerConnection::m_keepAlive = false |
|
protected |
Whether the connection should be kept alive.
HttpParser wpi::HttpServerConnection::m_request {HttpParser::kRequest} |
|
protected |
The underlying stream for the connection.
The documentation for this class was generated from the following file:
- /var/lib/jenkins/workspace/WPILib/WPILib - Development/arm/wpiutil/src/main/native/include/wpi/HttpServerConnection.h