xmltooling 3.0.4

Public Types | Public Member Functions | Static Public Member Functions | List of all members
xmltooling::HTTPResponse Class Reference

Interface to HTTP response. More...

`#include <xmltooling/io/HTTPResponse.h>`

Inheritance diagram for xmltooling::HTTPResponse:
[legend]
Collaboration diagram for xmltooling::HTTPResponse:
[legend]

## Public Types
enum | status_t { XMLTOOLING_HTTP_STATUS_OK = 200 , XMLTOOLING_HTTP_STATUS_MOVED = 302 , XMLTOOLING_HTTP_STATUS_NOTMODIFIED = 304 , XMLTOOLING_HTTP_STATUS_BADREQUEST = 400 , XMLTOOLING_HTTP_STATUS_UNAUTHORIZED = 401 , XMLTOOLING_HTTP_STATUS_FORBIDDEN = 403 , XMLTOOLING_HTTP_STATUS_NOTFOUND = 404 , XMLTOOLING_HTTP_STATUS_ERROR = 500 }
| Some common HTTP status codes.

## Public Member Functions
void | setContentType (const char *type)
| Sets or clears the MIME type of the response. More...
virtual void | setResponseHeader (const char *name, const char *value, bool replace=false)
| Sets, adds, or clears a response header. More...
virtual void | setCookie (const char *name, const char *value)
| Sets a client cookie. More...
virtual long | sendRedirect (const char *url)
| Redirect the client to the specified URL and complete the response. More...
long | sendError (std::istream &inputStream)
| Sends an "error" response to the client along with a transport-specific error indication. More...
long | sendResponse (std::istream &inputStream)
| Sends a completed response to the client along with a transport-specific "OK" indication. More...
virtual long | sendResponse (std::istream &inputStream)=0
| Sends a completed response to the client along with a transport-specific "OK" indication. More...
virtual long | sendResponse (std::istream &inputStream, long status)=0
| Sends a completed response to the client. More...
virtual void | setContentType (const char *type=0)=0
| Sets or clears the MIME type of the response. More...
virtual long | sendResponse (std::istream &inputStream)=0
| Sends a completed response to the client along with a transport-specific "OK" indication. More...
virtual long | sendError (std::istream &inputStream)=0
| Sends an "error" response to the client along with a transport-specific error indication. More...
virtual long | sendResponse (std::istream &inputStream, long status)=0
| Sends a completed response to the client. More...

## Static Public Member Functions
static std::vector< std::string > & | getAllowedSchemes ()
| Returns a modifiable array of schemes to permit in sanitized URLs. More...
static void | sanitizeURL (const char *url)
| Manually check for unsafe URLs vulnerable to injection attacks. More...

## Detailed Description

Interface to HTTP response.

To supply information to the surrounding web server environment, a shim must be supplied in the form of this interface to adapt the library to different proprietary server APIs.

This interface need not be threadsafe.

## Member Function Documentation

## ◆ getAllowedSchemes()

static std::vector< std::string > & xmltooling::HTTPResponse::getAllowedSchemes | ( |  | ) |
| static

Returns a modifiable array of schemes to permit in sanitized URLs.

Updates to this array must be externally synchronized with any use of this class or its subclasses.

Returns
  a mutable array of strings containing the schemes to permit

## ◆ sanitizeURL()

static void xmltooling::HTTPResponse::sanitizeURL | ( | const char * | url | ) |
| static

Manually check for unsafe URLs vulnerable to injection attacks.

Parameters

  url | location to check

## ◆ sendError()

long xmltooling::HTTPResponse::sendError | ( | std::istream & | inputStream | ) |
| virtual

Sends an "error" response to the client along with a transport-specific error indication.

Parameters

  inputStream | reference to source of response data

Returns
  a result code to return from the calling MessageEncoder

Implements xmltooling::GenericResponse.

## ◆ sendRedirect()

virtual long xmltooling::HTTPResponse::sendRedirect | ( | const char * | url | ) |
| virtual

Redirect the client to the specified URL and complete the response.

Any headers previously set will be sent ahead of the redirect.

The URL will be validated with the sanitizeURL method below.

Parameters

  url | location to redirect client

Returns
  a result code to return from the calling MessageEncoder

## ◆ sendResponse() [1/3]

long xmltooling::HTTPResponse::sendResponse | ( | std::istream & | inputStream | ) |
| virtual

Sends a completed response to the client along with a transport-specific "OK" indication.

Used for "normal" responses.

Parameters

  inputStream | reference to source of response data

Returns
  a result code to return from the calling MessageEncoder

Implements xmltooling::GenericResponse.

## ◆ sendResponse() [2/3]

virtual long xmltooling::GenericResponse::sendResponse | ( | std::istream & | inputStream | ) |
| virtual

Sends a completed response to the client along with a transport-specific "OK" indication.

Used for "normal" responses.

Parameters

  inputStream | reference to source of response data

Returns
  a result code to return from the calling MessageEncoder

Implements xmltooling::GenericResponse.

## ◆ sendResponse() [3/3]

virtual long xmltooling::GenericResponse::sendResponse | ( | std::istream & | inputStream,
|  | long | status
| ) |  |
| virtual

Sends a completed response to the client.

Parameters

  inputStream | reference to source of response data
  status | transport-specific status to return

Returns
  a result code to return from the calling MessageEncoder

Implements xmltooling::GenericResponse.

## ◆ setContentType()

void xmltooling::HTTPResponse::setContentType | ( | const char * | type | ) |
| virtual

Sets or clears the MIME type of the response.

Parameters

  type | the MIME type, or nullptr to clear

Implements xmltooling::GenericResponse.

## ◆ setCookie()

virtual void xmltooling::HTTPResponse::setCookie | ( | const char * | name,
|  | const char * | value
| ) |  |
| virtual

Sets a client cookie.

Parameters

  name | cookie name
  value | value to set, or nullptr to clear

## ◆ setResponseHeader()

virtual void xmltooling::HTTPResponse::setResponseHeader | ( | const char * | name,
|  | const char * | value,
|  | bool | replace = `false`
| ) |  |
| virtual

Sets, adds, or clears a response header.

Parameters

  name | header name
  value | value to set, or nullptr to clear
  replace | true iff this should replace existing header(s)

The documentation for this class was generated from the following file:

- xmltooling/io/HTTPResponse.h