Poster of Linux kernelThe best gift for a Linux geek
ost::URLStream

ost::URLStream

Section: C Library Functions (3) Updated: 16 Feb 2010
Local index Up
 

NAME

ost::URLStream -

A URL processing version of TCPStream.

 

SYNOPSIS


#include <url.h>

Inherits ost::TCPStream.  

Public Types


enum Error { errSuccess = 0, errUnreachable, errMissing, errDenied, errInvalid, errForbidden, errUnauthorized, errRelocated, errFailure, errTimeout, errInterface }
Return error for url fetch.
enum Authentication { authAnonymous = 0, authBasic }
Type of authentication.
enum Encoding { encodingBinary = 0, encodingChunked }
Encoding used in transfer.
enum Method { methodHttpGet, methodHttpPut, methodHttpPost, methodHttpPostMultipart, methodFtpGet, methodFtpPut, methodFileGet, methodFilePut }
Type of fetch.
enum Protocol { protocolHttp1_0, protocolHttp1_1 }
http protocol version  

Public Member Functions


URLStream (Family family=IPV4, timeout_t timer=0)
Construct an instance of URL stream.
URLStream & getline (char *buffer, size_t len)
Line parsing with conversion.
Error get (const char *url, size_t buffer=512)
Get URL data from a named stream of a known buffer size.
Error get (size_t buffer=512)
Get URL data from a named stream of a known buffer size.
Error submit (const char *url, const char **vars, size_t buffer=512)
Submit URL with vars passed as argument array.
Error post (const char *url, const char **vars, size_t buffer=512)
Post URL vars with post method.
Error post (const char *url, MIMEMultipartForm &form, size_t buffer=512)
Post URL with MIME multipart form.
Error head (const char *url, size_t buffer=512)
Used to fetch header information for a resource.
void close ()
Close the URL stream for a new connection.
void setReferer (const char *str)
Set the referer url.
void setHost (const char *str)
Set the host for the url.
void setAddress (const char *str)
Set the address for the url.
void setCookie (const char *str)
Set the cookie to pass.
void setUser (const char *str)
Set user id for the url.
void setPassword (const char *str)
Set password for the url.
void setAuthentication (Authentication a, const char *str=NULL)
Set authentication type for the url.
void setProxyUser (const char *str)
Set proxy user id for the url.
void setProxyPassword (const char *str)
Set proxy password for the url.
void setProxyAuthentication (Authentication a, const char *str=NULL)
Set proxy authentication type for the url.
void setPragma (const char *str)
Set the pragmas.
void setProxy (const char *host, tpport_t port)
Set the proxy server used.
void setAgent (const char *str)
Set the agent.
Method getMethod (void)
Get url method (and protocol) employed.
void setTimeout (timeout_t to)
Set socket timeout characteristics for processing URL requests.
void setFollow (bool enable)
Specify url following.
void setProtocol (Protocol pro)
Specify http protocol level being used.
void setLocalInterface (const char *intf)
Specify local interface to use.  

Protected Member Functions


Error sendHTTPHeader (const char *url, const char **vars, size_t bufsize)
Send http header to server.
int underflow (void)
Called if stream buffer needs refilling.
virtual int aRead (char *buffer, size_t len, timeout_t timer)
Derived method for async or timed I/O function on url stream.
virtual int aWrite (char *buffer, size_t len, timeout_t timer)
Derived method for async or timed I/O function on url stream.
virtual void httpHeader (const char *header, const char *value)
Derived method to receive and parse http 'headers'.
virtual char ** extraHeader (void)
A virtual to insert additional header info into the request.  

Protected Attributes


ost::String m_host

ost::String m_address
 

Related Functions

(Note that these are not member functions.)
char * urlDecode (char *source, char *dest=NULL)

char * urlEncode (const char *source, char *dest, size_t size)

char * b64Decode (char *src, char *dest=NULL)

char * b64Encode (const char *source, char *dest, size_t size)

size_t b64Encode (const unsigned char *src, size_t srcsize, char *dst, size_t dstsize)

size_t b64Decode (const char *src, unsigned char *dst, size_t dstsize)

String b64Encode (const String &src)

String b64Decode (const String &src)

String b64Encode (const unsigned char *src, size_t srcsize)

size_t b64Decode (const String &src, unsigned char *dst, size_t dstsize)
 

Detailed Description

A URL processing version of TCPStream.

Author:

David Sugar <dyfet@ostel.com> C++ url processing stream class.

Examples:

urlfetch.cpp, and xmlfetch.cpp.  

Member Enumeration Documentation

 

enum ost::URLStream::Authentication

Type of authentication.

Enumerator:

authAnonymous
authBasic

 

enum ost::URLStream::Encoding

Encoding used in transfer.

Enumerator:

encodingBinary
encodingChunked

 

enum ost::URLStream::Error

Return error for url fetch.

Enumerator:

errSuccess
errUnreachable
errMissing
errDenied
errInvalid
errForbidden
errUnauthorized
errRelocated
errFailure
errTimeout
errInterface

Reimplemented from ost::Socket.  

enum ost::URLStream::Method

Type of fetch.

Enumerator:

methodHttpGet
methodHttpPut
methodHttpPost
methodHttpPostMultipart
methodFtpGet
methodFtpPut
methodFileGet
methodFilePut

 

enum ost::URLStream::Protocol

http protocol version

Enumerator:

protocolHttp1_0
protocolHttp1_1

 

Constructor & Destructor Documentation

 

ost::URLStream::URLStream (Family family = IPV4, timeout_t timer = 0)

Construct an instance of URL stream. Parameters:

family protocol to use.
timer for default timeout on I/O operations.

 

Member Function Documentation

 

virtual int ost::URLStream::aRead (char * buffer, size_t len, timeout_t timer) [protected, virtual]

Derived method for async or timed I/O function on url stream. Returns:

number of bytes read or < 0 for error.

Parameters:

buffer to read stream data into.
len of bytes to read from stream.
timer to wait for data in milliseconds.

 

virtual int ost::URLStream::aWrite (char * buffer, size_t len, timeout_t timer) [protected, virtual]

Derived method for async or timed I/O function on url stream. Returns:

number of bytes written or < 0 for error.

Parameters:

buffer to write stream data from.
len of bytes to write to stream.
timer to wait for data in milliseconds.

 

void ost::URLStream::close ()

Close the URL stream for a new connection.  

virtual char** ost::URLStream::extraHeader (void) [protected, virtual]

A virtual to insert additional header info into the request. Returns:

array of header attributes to add.

 

Error ost::URLStream::get (size_t buffer = 512)

Get URL data from a named stream of a known buffer size. Requesting URL defined in previous calls of setAddress() and setHost() functions.

Returns:

url error code.

Parameters:

buffer size of buffer.

 

Error ost::URLStream::get (const char * url, size_t buffer = 512)

Get URL data from a named stream of a known buffer size. Returns:

url error code.

Parameters:

url name of resource.
buffer size of buffer.

 

URLStream& ost::URLStream::getline (char * buffer, size_t len)

Line parsing with conversion. Returns:

URLStream object reference.

Parameters:

buffer to store.
len maximum buffer size.

 

Method ost::URLStream::getMethod (void) [inline]

Get url method (and protocol) employed. Returns:

url method in effect.

 

Error ost::URLStream::head (const char * url, size_t buffer = 512)

Used to fetch header information for a resource. Returns:

url error code.

Parameters:

url name of resource.
buffer size of buffer.

 

virtual void ost::URLStream::httpHeader (const char * header, const char * value) [protected, virtual]

Derived method to receive and parse http 'headers'. Parameters:

header keyword.
value header keyword value.

Examples: urlfetch.cpp, and xmlfetch.cpp.  

Error ost::URLStream::post (const char * url, MIMEMultipartForm & form, size_t buffer = 512)

Post URL with MIME multipart form. Returns:

success or error code.

Parameters:

url name of resource being posted.
form multi-part resource.
buffer size to use.

 

Error ost::URLStream::post (const char * url, const char ** vars, size_t buffer = 512)

Post URL vars with post method. Returns:

success or error code.

Parameters:

url name of resource being posted.
vars to set in post.
buffer size of buffer.

 

Error ost::URLStream::sendHTTPHeader (const char * url, const char ** vars, size_t bufsize) [protected]

Send http header to server. Parameters:

url base to send header to
vars to post or use in get method
bufsize of stream buffering to use

Returns:

success or class error

 

void ost::URLStream::setAddress (const char * str) [inline]

Set the address for the url. Parameters:

str address in the URL.

 

void ost::URLStream::setAgent (const char * str) [inline]

Set the agent. Parameters:

str agent value.

 

void ost::URLStream::setAuthentication (Authentication a, const char * str = NULL)

Set authentication type for the url. Parameters:

a authentication.
str string.

 

void ost::URLStream::setCookie (const char * str) [inline]

Set the cookie to pass. Parameters:

str cookie string.

 

void ost::URLStream::setFollow (bool enable) [inline]

Specify url following. Set to false to disable following of relocation requests.

Parameters:

enable true to enable following.

 

void ost::URLStream::setHost (const char * str) [inline]

Set the host for the url. Parameters:

str host address.

 

void ost::URLStream::setLocalInterface (const char * intf) [inline]

Specify local interface to use. Parameters:

intf Local interface name

 

void ost::URLStream::setPassword (const char * str) [inline]

Set password for the url. Parameters:

str password.

 

void ost::URLStream::setPragma (const char * str) [inline]

Set the pragmas. Parameters:

str pragma setting.

 

void ost::URLStream::setProtocol (Protocol pro) [inline]

Specify http protocol level being used. Parameters:

pro protocol level.

 

void ost::URLStream::setProxy (const char * host, tpport_t port)

Set the proxy server used. Parameters:

host proxy host.
port proxy port.

 

void ost::URLStream::setProxyAuthentication (Authentication a, const char * str = NULL)

Set proxy authentication type for the url. Parameters:

a authentication.
str string.

 

void ost::URLStream::setProxyPassword (const char * str) [inline]

Set proxy password for the url. Parameters:

str password.

 

void ost::URLStream::setProxyUser (const char * str) [inline]

Set proxy user id for the url. Parameters:

str user id.

 

void ost::URLStream::setReferer (const char * str)

Set the referer url. Parameters:

str referer string.

 

void ost::URLStream::setTimeout (timeout_t to) [inline]

Set socket timeout characteristics for processing URL requests. Set to 0 for no default timeouts.

Parameters:

to timeout to set.

Reimplemented from ost::TCPStream.  

void ost::URLStream::setUser (const char * str) [inline]

Set user id for the url. Parameters:

str user id.

 

Error ost::URLStream::submit (const char * url, const char ** vars, size_t buffer = 512)

Submit URL with vars passed as argument array. This submit assumes 'GET' method. Use 'post' member to perform post.

Returns:

url error code.

Parameters:

url name of resource.
vars to set.
buffer size of buffer.

 

int ost::URLStream::underflow (void) [protected]

Called if stream buffer needs refilling. Returns:

number of bytes refilled or error if < 0

Reimplemented from ost::TCPStream.  

Friends And Related Function Documentation

 

size_t b64Decode (const String & src, unsigned char * dst, size_t dstsize) [related]Decode a string using base64 coding. Destination size should be at least strlen(src)/4*3. Destination are not string terminated (It's just a octet stream).

Returns:

number of octets written into destination buffer

Parameters:

src source string
dst destination octet buffer
dstsize destination buffer size

 

String b64Decode (const String & src) [related]Decode a STL string using base64 coding into an STL String. Destination size should be at least strlen(src)/4*3. Destination are not string terminated (It's just a octet stream).

Returns:

decoded string

Parameters:

src source string

 

size_t b64Decode (const char * src, unsigned char * dst, size_t dstsize) [related]Decode a string using base64 coding. Destination size should be at least strlen(src)/4*3. Destination are not string terminated (It's just a octet stream).

Returns:

number of octets written into destination buffer

Parameters:

src source string
dst destination octet buffer
dstsize destination buffer size

 

char * b64Decode (char * src, char * dest = NULL) [related]Decode a string using base64 coding. Destination size should be at least strlen(src)+1. Destination will be a string, so is always terminated . This function is deprecated, base64 can use binary source, not only string use overloaded b64Decode.

Returns:

string coded

Parameters:

src source buffer
dest destination buffer. If NULL src is used

Examples: url1.cpp.  

String b64Encode (const unsigned char * src, size_t srcsize) [related]Encode a octet stream using base64 coding into a STL string

Returns:

base 64 encoded string

Parameters:

src source buffer
srcsize source buffer size

 

String b64Encode (const String & src) [related]Encode a STL string using base64 coding into a STL string

Returns:

base 64 encoded string

Parameters:

src source string

 

size_t b64Encode (const unsigned char * src, size_t srcsize, char * dst, size_t dstsize) [related]Encode a octet stream using base64 coding. Destination size should be at least (srcsize+2)/3*4+1. Destination will be a string, so is always terminated (unless you pass dstsize == 0).

Returns:

size of string written not counting terminator

Parameters:

src source buffer
srcsize source buffer size
dst destination buffer
dstsize destination buffer size

 

char * b64Encode (const char * source, char * dest, size_t size) [related]Encode a string using base64 coding. Destination size should be at least strlen(src)/4*3+1. Destination is string terminated. This function is deprecated, coded stream can contain terminator character use overloaded b64Encode instead.

Returns:

destination buffer

Parameters:

source source string
dest destination octet buffer
size destination buffer size

Examples: url1.cpp.  

char * urlDecode (char * source, char * dest = NULL) [related]Decode an url parameter (ie '\%20' -> ' ')

Parameters:

source string
dest destination buffer. If NULL source is used

 

char * urlEncode (const char * source, char * dest, size_t size) [related]Encode an url parameter (ie ' ' -> '+')

Parameters:

source string
dest destination buffer. Do not overlap with source
size destination buffer size.

 

Member Data Documentation

 

ost::String ost::URLStream::m_address [protected]

 

ost::String ost::URLStream::m_host [protected]

 

Author

Generated automatically by Doxygen for GNU CommonC++ from the source code.


 

Index

NAME
SYNOPSIS
Public Types
Public Member Functions
Protected Member Functions
Protected Attributes
Related Functions
Detailed Description
Member Enumeration Documentation
enum ost::URLStream::Authentication
enum ost::URLStream::Encoding
enum ost::URLStream::Error
enum ost::URLStream::Method
enum ost::URLStream::Protocol
Constructor & Destructor Documentation
ost::URLStream::URLStream (Family family = IPV4, timeout_t timer = 0)
Member Function Documentation
virtual int ost::URLStream::aRead (char * buffer, size_t len, timeout_t timer) [protected, virtual]
virtual int ost::URLStream::aWrite (char * buffer, size_t len, timeout_t timer) [protected, virtual]
void ost::URLStream::close ()
virtual char** ost::URLStream::extraHeader (void) [protected, virtual]
Error ost::URLStream::get (size_t buffer = 512)
Error ost::URLStream::get (const char * url, size_t buffer = 512)
URLStream& ost::URLStream::getline (char * buffer, size_t len)
Method ost::URLStream::getMethod (void) [inline]
Error ost::URLStream::head (const char * url, size_t buffer = 512)
virtual void ost::URLStream::httpHeader (const char * header, const char * value) [protected, virtual]
Error ost::URLStream::post (const char * url, MIMEMultipartForm & form, size_t buffer = 512)
Error ost::URLStream::post (const char * url, const char ** vars, size_t buffer = 512)
Error ost::URLStream::sendHTTPHeader (const char * url, const char ** vars, size_t bufsize) [protected]
void ost::URLStream::setAddress (const char * str) [inline]
void ost::URLStream::setAgent (const char * str) [inline]
void ost::URLStream::setAuthentication (Authentication a, const char * str = NULL)
void ost::URLStream::setCookie (const char * str) [inline]
void ost::URLStream::setFollow (bool enable) [inline]
void ost::URLStream::setHost (const char * str) [inline]
void ost::URLStream::setLocalInterface (const char * intf) [inline]
void ost::URLStream::setPassword (const char * str) [inline]
void ost::URLStream::setPragma (const char * str) [inline]
void ost::URLStream::setProtocol (Protocol pro) [inline]
void ost::URLStream::setProxy (const char * host, tpport_t port)
void ost::URLStream::setProxyAuthentication (Authentication a, const char * str = NULL)
void ost::URLStream::setProxyPassword (const char * str) [inline]
void ost::URLStream::setProxyUser (const char * str) [inline]
void ost::URLStream::setReferer (const char * str)
void ost::URLStream::setTimeout (timeout_t to) [inline]
void ost::URLStream::setUser (const char * str) [inline]
Error ost::URLStream::submit (const char * url, const char ** vars, size_t buffer = 512)
int ost::URLStream::underflow (void) [protected]
Friends And Related Function Documentation
size_t b64Decode (const String & src, unsigned char * dst, size_t dstsize) [related]Decode a string using base64 coding. Destination size should be at least strlen(src)/4*3. Destination are not string terminated (It's just a octet stream).
String b64Decode (const String & src) [related]Decode a STL string using base64 coding into an STL String. Destination size should be at least strlen(src)/4*3. Destination are not string terminated (It's just a octet stream).
size_t b64Decode (const char * src, unsigned char * dst, size_t dstsize) [related]Decode a string using base64 coding. Destination size should be at least strlen(src)/4*3. Destination are not string terminated (It's just a octet stream).
char * b64Decode (char * src, char * dest = NULL) [related]Decode a string using base64 coding. Destination size should be at least strlen(src)+1. Destination will be a string, so is always terminated . This function is deprecated, base64 can use binary source, not only string use overloaded b64Decode.
String b64Encode (const unsigned char * src, size_t srcsize) [related]Encode a octet stream using base64 coding into a STL string
String b64Encode (const String & src) [related]Encode a STL string using base64 coding into a STL string
size_t b64Encode (const unsigned char * src, size_t srcsize, char * dst, size_t dstsize) [related]Encode a octet stream using base64 coding. Destination size should be at least (srcsize+2)/3*4+1. Destination will be a string, so is always terminated (unless you pass dstsize == 0).
char * b64Encode (const char * source, char * dest, size_t size) [related]Encode a string using base64 coding. Destination size should be at least strlen(src)/4*3+1. Destination is string terminated. This function is deprecated, coded stream can contain terminator character use overloaded b64Encode instead.
char * urlDecode (char * source, char * dest = NULL) [related]Decode an url parameter (ie '\%20' -> ' ')
char * urlEncode (const char * source, char * dest, size_t size) [related]Encode an url parameter (ie ' ' -> '+')
Member Data Documentation
ost::String ost::URLStream::m_address [protected]
ost::String ost::URLStream::m_host [protected]
Author

This document was created by man2html, using the manual pages.
Time: 21:51:53 GMT, April 16, 2011