NAME
URLStream - A URL processing version of TCPStream. C++ url processing stream class.
SYNOPSIS
#include <url.h>
Inherits TCPStream.
Public Types
enum Error { errSuccess = 0, errUnreachable, errMissing, errDenied, errInvalid, errForbidden, errUnauthorized, errRelocated, errFailure, errTimeout }
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, methodFtpGet, methodFtpPut, methodFileGet, methodFilePut }
Type of fetch. enum Protocol { protocolHttp1_0, protocolHttp1_1 }
http protocol version
Public Methods
URLStream (timeout_t to=0)
Construct an instance of URL stream. URLStream & getline (char *buffer, size_t len)
Line parsing with conversion. Error get (const char *url, int buffer=512)
Get URL data from a named stream of a known buffer size. Error submit (const char *url, const char **vars, int buffer=512)
Submit URL with vars passed as argument array. Error post (const char *url, const char **vars, int buffer=512)
Post URL vars with post method. Error head (const char *url, int 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 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 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 Methods
Error sendHTTPHeader (const char *url, const char **vars, int bufsize)
int underflow (void)
virtual int aRead (char *buffer, size_t len, timeout_t timeout)
virtual int aWrite (char *buffer, size_t len, timeout_t timeout)
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.
Related Functions
(Note that these are not member functions.) CCXX_EXPORT(char *) urlDecode(char *source
Decode an url parameter (ie '%20' -> ' '). CCXX_EXPORT(char *) urlEncode(const char *source
Encode an url parameter (ie ' ' -> '+'). CCXX_EXPORT(size_t) b64Encode(const unsigned char *src
Encode a octet stream using base64 coding.
DETAILED DESCRIPTION
A URL processing version of TCPStream. C++ url processing stream class.
Author: David Sugar <[email protected]>
MEMBER ENUMERATION DOCUMENTATION
enum URLStream::Authentication
Type of authentication.
Enumeration values:
- authAnonymous
- authBasic
enum URLStream::Encoding
Encoding used in transfer.
Enumeration values:
- encodingBinary
- encodingChunked
enum URLStream::Error
Return error for url fetch.
Enumeration values:
- errSuccess
- errUnreachable
- errMissing
- errDenied
- errInvalid
- errForbidden
- errUnauthorized
- errRelocated
- errFailure
- errTimeout
Reimplemented from Socket.
enum URLStream::Method
Type of fetch.
Enumeration values:
- methodHttpGet
- methodHttpPut
- methodHttpPost
- methodFtpGet
- methodFtpPut
- methodFileGet
- methodFilePut
enum URLStream::Protocol
http protocol version
Enumeration values:
- protocolHttp1_0
- protocolHttp1_1
CONSTRUCTOR & DESTRUCTOR DOCUMENTATION
URLStream::URLStream (timeout_t to = 0)
Construct an instance of URL stream.
Parameters:
- to
-
default timeout.
MEMBER FUNCTION DOCUMENTATION
virtual int URLStream::aRead (char * buffer, size_t len, timeout_t timeout) [inline, protected, virtual]
virtual int URLStream::aWrite (char * buffer, size_t len, timeout_t timeout) [inline, protected, virtual]
void URLStream::close ()
Close the URL stream for a new connection.
virtual char** URLStream::extraHeader (void) [inline, protected, virtual]
A virtual to insert additional header info into the request.
Returns: array of header attributes to add.
Error URLStream::get (const char * url, int 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& URLStream::getline (char * buffer, size_t len)
Line parsing with conversion.
Returns: URLStream object.
Parameters:
- buffer
-
to store.
- len
-
maximum buffer size.
Method URLStream::getMethod (void) [inline]
Get url method (and protocol) employed.
Returns: url method in effect.
Error URLStream::head (const char * url, int 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 URLStream::httpHeader (const char * header, const char * value) [inline, protected, virtual]
Derived method to receive and parse http 'headers'.
Parameters:
- header
-
keyword.
- value
-
header keyword value.
Error URLStream::post (const char * url, const char ** vars, int buffer = 512)
Post URL vars with post method.
Returns: url error code.
Parameters:
- url
-
name of resource.
- vars
-
to set.
- buffer
-
size of buffer.
Error URLStream::sendHTTPHeader (const char * url, const char ** vars, int bufsize) [protected]
void URLStream::setAgent (const char * str) [inline]
Set the agent.
Parameters:
- str
-
agent value.
void URLStream::setAuthentication (Authentication a, const char * str = NULL)
Set authentication type for the url.
Parameters:
- a
-
authentication.
- str
-
string.
void URLStream::setCookie (const char * str) [inline]
Set the cookie to pass.
Parameters:
- str
-
cookie string.
void URLStream::setFollow (bool enable) [inline]
Specify url following.
Set to false to disable following of relocation requests.
Parameters:
- enable
-
true to enable following.
void URLStream::setLocalInterface (const char * intf) [inline]
Specify local interface to use.
Parameters:
- intf
-
Local interface name
void URLStream::setPassword (const char * str) [inline]
Set password for the url.
Parameters:
- str
-
password.
void URLStream::setPragma (const char * str) [inline]
Set the pragmas.
Parameters:
- str
-
pragma setting.
void URLStream::setProtocol (Protocol pro) [inline]
Specify http protocol level being used.
Parameters:
- pro
-
protocol level.
void URLStream::setProxy (const char * host, tpport_t port)
Set the proxy server used.
Parameters:
- host
-
proxy host.
- port
-
proxy port.
void URLStream::setReferer (const char * str)
Set the referer url.
Parameters:
- str
-
referer string.
void 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 TCPStream.
void URLStream::setUser (const char * str) [inline]
Set user id for the url.
Parameters:
- str
-
user id.
Error URLStream::submit (const char * url, const char ** vars, int 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 URLStream::underflow (void) [protected]
Reimplemented from TCPStream.
FRIENDS AND RELATED FUNCTION DOCUMENTATION
CCXX_EXPORT(size_t) const [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
CCXX_EXPORT(char *) const [related]
Encode an url parameter (ie ' ' -> '+').
Parameters:
- source
-
string
- dest
-
destination buffer. Do not overlap with source
- size
-
destination buffer size.
CCXX_EXPORT(char *) [related]
Decode an url parameter (ie '%20' -> ' ').
Parameters:
- source
-
string
- dest
-
destination buffer. If NULL source is used
AUTHOR
Generated automatically by Doxygen for CommonC++ from the source code.