HTTP server connection. More...
#include <http_server_connection.h>
Public Types | |
Enumerations | |
enum | SeekMode { seek_set, seek_cur, seek_end } |
Seeking modes. More... | |
Public Member Functions | |
Construction | |
CL_HTTPServerConnection () | |
Construct a null instance. | |
CL_HTTPServerConnection (const CL_SharedPtr< CL_HTTPServerConnection_Impl > &impl) | |
Constructs a HTTPServerConnection. | |
~CL_HTTPServerConnection () | |
Attributes | |
bool | is_null () const |
Returns true if this object is invalid. | |
void | throw_if_null () const |
Throw an exception if this object is invalid. | |
CL_StringRef8 | get_request_type () |
Get Request type. | |
CL_StringRef8 | get_request_url () |
Get Request url. | |
CL_StringRef8 | get_request_headers () |
Get Request headers. | |
Operations | |
CL_DataBuffer | read_request_data () |
Read request data. | |
void | write_response_status (int status_code, const CL_StringRef8 &status_text=CL_StringRef8()) |
Write response status. | |
void | write_response_headers (const CL_StringRef8 &headers) |
Write response headers. | |
void | write_response_data (const CL_DataBuffer &data) |
Write response data. | |
Attributes | |
int | get_size () const |
Returns the size of data stream. | |
int | get_position () const |
Returns the position in the data stream. | |
bool | is_little_endian () const |
Returns true if the input source is in little endian mode. | |
const CL_IODeviceProvider * | get_provider () const |
Returns the provider for this object. | |
CL_IODeviceProvider * | get_provider () |
Returns the provider for this object. | |
Operations | |
int | send (const void *data, int len, bool send_all=true) |
Send data to device. | |
int | receive (void *data, int len, bool receive_all=true) |
Receive data from device. | |
int | peek (void *data, int len) |
Peek data from device (data is left in the buffer). | |
bool | seek (int position, SeekMode mode=seek_set) |
Seek in data stream. | |
int | read (void *data, int len, bool receive_all=true) |
Alias for receive(data, len, receive_all). | |
int | write (const void *data, int len, bool send_all=true) |
Alias for send(data, len, send_all). | |
void | set_system_mode () |
Changes input data endianess to the local systems mode. | |
void | set_big_endian_mode () |
Changes input data endianess to big endian mode. (Default is little endian). | |
void | set_little_endian_mode () |
Changes input data endianess to little endian mode. This is the default setting. | |
void | write_int64 (cl_byte64 data) |
Writes a signed 64 bit integer to output source. | |
void | write_uint64 (cl_ubyte64 data) |
Writes an unsigned 64 bit integer to output source. | |
void | write_int32 (cl_byte32 data) |
Writes a signed 32 bit integer to output source. | |
void | write_uint32 (cl_ubyte32 data) |
Writes an unsigned 32 bit integer to output source. | |
void | write_int16 (cl_byte16 data) |
Writes a signed 16 bit integer to output source. | |
void | write_uint16 (cl_ubyte16 data) |
Writes an unsigned 16 bit integer to output source. | |
void | write_int8 (cl_byte8 data) |
Writes a signed 8 bit integer to output source. | |
void | write_uint8 (cl_ubyte8 data) |
Writes an unsigned 8 bit integer to output source. | |
void | write_float (float data) |
Writes a float to output source. | |
void | write_string_a (const CL_StringRef8 &str) |
Writes a string to the output source. | |
void | write_string_nul (const CL_StringRef8 &str) |
Writes a nul terminated string to the output source. | |
void | write_string_text (const CL_StringRef8 &str) |
Writes a text string to the output source. | |
cl_byte64 | read_int64 () |
Reads a signed 64 bit integer from input source. | |
cl_ubyte64 | read_uint64 () |
Reads an unsigned 64 bit integer from input source. | |
cl_byte32 | read_int32 () |
Reads a signed 32 bit integer from input source. | |
cl_ubyte32 | read_uint32 () |
Reads an unsigned 32 bit integer from input source. | |
cl_byte16 | read_int16 () |
Reads a signed 16 bit integer from input source. | |
cl_ubyte16 | read_uint16 () |
Reads an unsigned 16 bit integer from input source. | |
cl_byte8 | read_int8 () |
Reads a signed 8 bit integer from input source. | |
cl_ubyte8 | read_uint8 () |
Reads an unsigned 8 bit integer from input source. | |
float | read_float () |
Reads a float from input source. | |
CL_String8 | read_string_a () |
Reads a string from the input source. | |
CL_String8 | read_string_nul () |
Reads a nul terminated string from the input source. | |
CL_String8 | read_string_text (const char *skip_initial_chars, const char *read_until_chars, bool allow_eof=true) |
Reads a string from the input source where the source is a text file. | |
CL_IODevice | duplicate () |
Create a new CL_IODevice referencing the same resource. |
HTTP server connection.
enum CL_IODevice::SeekMode [inherited] |
CL_HTTPServerConnection::CL_HTTPServerConnection | ( | ) |
Construct a null instance.
CL_HTTPServerConnection::CL_HTTPServerConnection | ( | const CL_SharedPtr< CL_HTTPServerConnection_Impl > & | impl | ) |
Constructs a HTTPServerConnection.
impl | = Shared Ptr |
CL_HTTPServerConnection::~CL_HTTPServerConnection | ( | ) |
CL_IODevice CL_IODevice::duplicate | ( | ) | [inherited] |
Create a new CL_IODevice referencing the same resource.
int CL_IODevice::get_position | ( | ) | const [inherited] |
Returns the position in the data stream.
Returns -1 if the position is unknown.
const CL_IODeviceProvider* CL_IODevice::get_provider | ( | ) | const [inherited] |
Returns the provider for this object.
CL_IODeviceProvider* CL_IODevice::get_provider | ( | ) | [inherited] |
Returns the provider for this object.
CL_StringRef8 CL_HTTPServerConnection::get_request_headers | ( | ) |
Get Request headers.
CL_StringRef8 CL_HTTPServerConnection::get_request_type | ( | ) |
Get Request type.
CL_StringRef8 CL_HTTPServerConnection::get_request_url | ( | ) |
Get Request url.
int CL_IODevice::get_size | ( | ) | const [inherited] |
Returns the size of data stream.
Returns -1 if the size is unknown.
bool CL_IODevice::is_little_endian | ( | ) | const [inherited] |
Returns true if the input source is in little endian mode.
bool CL_HTTPServerConnection::is_null | ( | ) | const [inline] |
Returns true if this object is invalid.
Reimplemented from CL_IODevice.
int CL_IODevice::peek | ( | void * | data, | |
int | len | |||
) | [inherited] |
Peek data from device (data is left in the buffer).
data | Data to receive | |
len | Maximum length of data to receive |
int CL_IODevice::read | ( | void * | data, | |
int | len, | |||
bool | receive_all = true | |||
) | [inherited] |
Alias for receive(data, len, receive_all).
data | Data to receive | |
len | Length to receive | |
receive_all | true to receive all the data. false = receive part of the data, if it would block |
float CL_IODevice::read_float | ( | ) | [inherited] |
Reads a float from input source.
Warning, this is not portable
cl_byte16 CL_IODevice::read_int16 | ( | ) | [inherited] |
Reads a signed 16 bit integer from input source.
cl_byte32 CL_IODevice::read_int32 | ( | ) | [inherited] |
Reads a signed 32 bit integer from input source.
cl_byte64 CL_IODevice::read_int64 | ( | ) | [inherited] |
Reads a signed 64 bit integer from input source.
cl_byte8 CL_IODevice::read_int8 | ( | ) | [inherited] |
Reads a signed 8 bit integer from input source.
CL_DataBuffer CL_HTTPServerConnection::read_request_data | ( | ) |
Read request data.
CL_String8 CL_IODevice::read_string_a | ( | ) | [inherited] |
Reads a string from the input source.
The binary format expected in the input source is first an uint32 telling the length of the string, and then the string itself.
CL_String8 CL_IODevice::read_string_nul | ( | ) | [inherited] |
Reads a nul terminated string from the input source.
The binary format expected in the input source is a nul terminated string. (The NUL termintor is read, so that the file position is set after the NUL)
CL_String8 CL_IODevice::read_string_text | ( | const char * | skip_initial_chars, | |
const char * | read_until_chars, | |||
bool | allow_eof = true | |||
) | [inherited] |
Reads a string from the input source where the source is a text file.
After reading the input source up to "read_until_chars", the file position is set to the first character that was not read. If the file contains NUL characters, then the input is read up to the NUL character, and the file position is set AFTER the NUL)
skip_initial_chars | Ignore any of these characters at the start of the string. NULL = Do not ignore any characters | |
read_until_chars | Read from the input until any of these characters are found. NULL = Read until the end of the file | |
allow_eof | Allow EOF |
cl_ubyte16 CL_IODevice::read_uint16 | ( | ) | [inherited] |
Reads an unsigned 16 bit integer from input source.
cl_ubyte32 CL_IODevice::read_uint32 | ( | ) | [inherited] |
Reads an unsigned 32 bit integer from input source.
cl_ubyte64 CL_IODevice::read_uint64 | ( | ) | [inherited] |
Reads an unsigned 64 bit integer from input source.
cl_ubyte8 CL_IODevice::read_uint8 | ( | ) | [inherited] |
Reads an unsigned 8 bit integer from input source.
int CL_IODevice::receive | ( | void * | data, | |
int | len, | |||
bool | receive_all = true | |||
) | [inherited] |
Receive data from device.
data | Data to receive | |
len | Length to receive | |
receive_all | true to receive all the data. false = receive part of the data, if it would block |
bool CL_IODevice::seek | ( | int | position, | |
SeekMode | mode = seek_set | |||
) | [inherited] |
Seek in data stream.
position | Position to use (usage depends on the seek mode) | |
mode | Seek mode |
int CL_IODevice::send | ( | const void * | data, | |
int | len, | |||
bool | send_all = true | |||
) | [inherited] |
Send data to device.
If the device databuffer is too small, it will be extended (ie grow memory block size or file size)
data | Data to send | |
len | Length to send | |
send_all | true to send all the data. false = send part of the data, if it would block |
void CL_IODevice::set_big_endian_mode | ( | ) | [inherited] |
Changes input data endianess to big endian mode. (Default is little endian).
void CL_IODevice::set_little_endian_mode | ( | ) | [inherited] |
Changes input data endianess to little endian mode. This is the default setting.
void CL_IODevice::set_system_mode | ( | ) | [inherited] |
Changes input data endianess to the local systems mode.
void CL_HTTPServerConnection::throw_if_null | ( | ) | const |
Throw an exception if this object is invalid.
Reimplemented from CL_IODevice.
int CL_IODevice::write | ( | const void * | data, | |
int | len, | |||
bool | send_all = true | |||
) | [inherited] |
Alias for send(data, len, send_all).
data | Data to send | |
len | Length to send | |
send_all | true to send all the data. false = send part of the data, if it would block |
void CL_IODevice::write_float | ( | float | data | ) | [inherited] |
Writes a float to output source.
data | = Float to write |
Warning, this is not portable.
void CL_IODevice::write_int16 | ( | cl_byte16 | data | ) | [inherited] |
Writes a signed 16 bit integer to output source.
data | Integer to write |
void CL_IODevice::write_int32 | ( | cl_byte32 | data | ) | [inherited] |
Writes a signed 32 bit integer to output source.
data | Integer to write |
void CL_IODevice::write_int64 | ( | cl_byte64 | data | ) | [inherited] |
Writes a signed 64 bit integer to output source.
data | Integer to write |
void CL_IODevice::write_int8 | ( | cl_byte8 | data | ) | [inherited] |
Writes a signed 8 bit integer to output source.
data | Integer to write |
void CL_HTTPServerConnection::write_response_data | ( | const CL_DataBuffer & | data | ) |
Write response data.
data | = Data Buffer |
void CL_HTTPServerConnection::write_response_headers | ( | const CL_StringRef8 & | headers | ) |
Write response headers.
headers | = String Ref8 |
void CL_HTTPServerConnection::write_response_status | ( | int | status_code, | |
const CL_StringRef8 & | status_text = CL_StringRef8() | |||
) |
Write response status.
status_code | = value | |
status_text | = String Ref8 |
void CL_IODevice::write_string_a | ( | const CL_StringRef8 & | str | ) | [inherited] |
Writes a string to the output source.
str | String to write |
The binary format written to the output source is first an uint32 telling the length of the string, and then the string itself.
void CL_IODevice::write_string_nul | ( | const CL_StringRef8 & | str | ) | [inherited] |
Writes a nul terminated string to the output source.
str | String to write |
The binary format written to the output source is the string content followed by the NUL character.
void CL_IODevice::write_string_text | ( | const CL_StringRef8 & | str | ) | [inherited] |
Writes a text string to the output source.
str | String to write |
The binary format written to the output source is the string content appended with a native newline. On Windows the newline is CR+LF sequence and on other platforms it is only LF character. This function is intended for use with text files.
void CL_IODevice::write_uint16 | ( | cl_ubyte16 | data | ) | [inherited] |
Writes an unsigned 16 bit integer to output source.
data | Integer to write |
void CL_IODevice::write_uint32 | ( | cl_ubyte32 | data | ) | [inherited] |
Writes an unsigned 32 bit integer to output source.
data | Integer to write |
void CL_IODevice::write_uint64 | ( | cl_ubyte64 | data | ) | [inherited] |
Writes an unsigned 64 bit integer to output source.
data | Integer to write |
void CL_IODevice::write_uint8 | ( | cl_ubyte8 | data | ) | [inherited] |
Writes an unsigned 8 bit integer to output source.
data | Integer to write |