|
| 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 | SendStaticResponse (int code, const Twine &codeText, const Twine &contentType, StringRef content, bool gzipped, const Twine &extraHeader=Twine{}) |
| Send HTTP response from static data, 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, 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, including final "\r\n" |
void wpi::HttpServerConnection::SendStaticResponse |
( |
int |
code, |
|
|
const Twine & |
codeText, |
|
|
const Twine & |
contentType, |
|
|
StringRef |
content, |
|
|
bool |
gzipped, |
|
|
const Twine & |
extraHeader = Twine{} |
|
) |
| |
|
protected |
Send HTTP response from static data, along with other header information like mimetype.
Calls BuildHeader(). Supports gzip pre-compressed data (it will decompress if the client does not accept gzip encoded data). Unlike SendResponse(), content is not copied and its contents must remain valid for an unspecified lifetime.
- 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 |
gzipped | True if content is gzip compressed |
extraHeader | Extra HTTP headers to send, including final "\r\n" |
bool wpi::HttpServerConnection::m_acceptGzip = false |
|
protected |
If gzip is an acceptable encoding for responses.
The header reader connection.
The end stream connection.
bool wpi::HttpServerConnection::m_keepAlive = false |
|
protected |
Whether the connection should be kept alive.
The message complete connection.
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