libcamgm
Public Member Functions | Protected Member Functions | Private Attributes | List of all members
ca_mgm::url::UrlBase Class Reference

Generic Url base class. More...

#include <UrlBase.hpp>

Public Member Functions

virtual ~UrlBase ()
 
 UrlBase ()
 
 UrlBase (const UrlBase &url)
 
 UrlBase (const UrlComponents &components)
 Construct new object and initializes it with specified URL components. More...
 
 UrlBase (const std::string &urlString)
 
UrlBaseoperator= (const UrlBase &url)
 Assign shared copy of url to the current object. More...
 
UrlBaseoperator= (const std::string &urlString)
 Assigns parsed percent-encoded URL string to the object. More...
 
virtual void clear ()
 Clears all data in the object. More...
 
virtual UrlBaseclone () const
 
virtual void init (const UrlComponents &components)
 Initializes current object with new URL components. More...
 
virtual std::vector< std::string > getKnownSchemes () const
 Returns scheme names known by this object. More...
 
virtual bool isKnownScheme (const std::string &scheme) const
 Returns if scheme name is known to this object. More...
 
virtual bool isValidScheme (const std::string &scheme) const
 Verifies specified scheme name. More...
 
virtual bool isValid () const
 Verifies the Url. More...
 
virtual std::string toString () const
 
virtual std::string toString (const ca_mgm::url::ViewOptions &opts) const
 
virtual std::string getScheme () const
 
virtual std::string getAuthority () const
 
virtual std::string getUsername (EEncoding eflag) const
 
virtual std::string getPassword (EEncoding eflag) const
 
virtual std::string getHost (EEncoding eflag) const
 
virtual std::string getPort () const
 
virtual std::string getPathData () const
 
virtual std::string getPathName (EEncoding eflag) const
 
virtual std::string getPathParams () const
 
virtual std::vector< std::string > getPathParamsArray () const
 
virtual ca_mgm::url::ParamMap getPathParamsMap (EEncoding eflag) const
 
virtual std::string getPathParam (const std::string &param, EEncoding eflag) const
 
virtual std::string getQueryString () const
 
virtual std::vector< std::string > getQueryStringArray () const
 
virtual ca_mgm::url::ParamMap getQueryStringMap (EEncoding eflag) const
 
virtual std::string getQueryParam (const std::string &param, EEncoding eflag) const
 
virtual std::string getFragment (EEncoding eflag) const
 
virtual void setScheme (const std::string &scheme)
 Set the scheme name in the URL. More...
 
virtual void setAuthority (const std::string &authority)
 Set the authority component in the URL. More...
 
virtual void setUsername (const std::string &user, EEncoding eflag)
 Set the username in the URL authority. More...
 
virtual void setPassword (const std::string &pass, EEncoding eflag)
 Set the password in the URL authority. More...
 
virtual void setHost (const std::string &host, EEncoding eflag)
 Set the hostname or IP in the URL authority. More...
 
virtual void setPort (const std::string &port)
 Set the port number in the URL authority. More...
 
virtual void setPathData (const std::string &pathdata)
 Set the path data component in the URL. More...
 
virtual void setPathName (const std::string &path, EEncoding eflag)
 Set the path name. More...
 
virtual void setPathParams (const std::string &params)
 Set the path parameters. More...
 
virtual void setPathParamsArray (const std::vector< std::string > &parray)
 Set the path parameters. More...
 
virtual void setPathParamsMap (const ca_mgm::url::ParamMap &pmap)
 Set the path parameters. More...
 
virtual void setPathParam (const std::string &param, const std::string &value)
 Set or add value for the specified path parameter. More...
 
virtual void setQueryString (const std::string &querystr)
 Set the query string in the URL. More...
 
virtual void setQueryStringArray (const std::vector< std::string > &qarray)
 Set the query parameters. More...
 
virtual void setQueryStringMap (const ca_mgm::url::ParamMap &qmap)
 Set the query parameters. More...
 
virtual void setQueryParam (const std::string &param, const std::string &value)
 Set or add value for the specified query parameter. More...
 
virtual void setFragment (const std::string &fragment, EEncoding eflag)
 Set the fragment string in the URL. More...
 
virtual void configure ()
 
std::string config (const std::string &opt) const
 
void config (const std::string &opt, const std::string &val)
 
ViewOptions getViewOptions () const
 
void setViewOptions (const ViewOptions &vopts)
 

Protected Member Functions

virtual std::string cleanupPathName (const std::string &path, bool authority) const
 
virtual std::string cleanupPathName (const std::string &path) const
 
virtual void checkValidScheme (const std::string &scheme, EEncoding eflag) const
 
virtual void checkValidUser (const std::string &user, EEncoding eflag) const
 
virtual void checkValidPass (const std::string &pass, EEncoding eflag) const
 
virtual void checkValidHost (const std::string &host, EEncoding eflag) const
 Verifies specified host or IP. More...
 
virtual void checkValidPort (const std::string &port, EEncoding eflag) const
 Verifies if specified port number is in the range 0..65535. More...
 
virtual void checkValidPathName (const std::string &path, EEncoding eflag) const
 
virtual void checkValidPathParams (const std::string &params, EEncoding eflag) const
 
virtual void checkValidQueryStr (const std::string &querystr, EEncoding eflag) const
 
virtual void checkValidFragment (const std::string &fragment, EEncoding eflag) const
 

Private Attributes

RWCOW_pointer< UrlBaseData > m_data
 

Detailed Description

Generic Url base class.

The UrlBase class implements default behaviour for URL manipulations and a base for implementation of scheme- specialized URL's for the Url class.

Constructor & Destructor Documentation

virtual ca_mgm::url::UrlBase::~UrlBase ( )
virtual

Destroys the current object.

ca_mgm::url::UrlBase::UrlBase ( )

Create an empty Url object.

ca_mgm::url::UrlBase::UrlBase ( const UrlBase url)

Create a new Url object as copy of the given one.

Parameters
urlThe Url object to make a copy of.
ca_mgm::url::UrlBase::UrlBase ( const UrlComponents components)

Construct new object and initializes it with specified URL components.

Parameters
componentsThe url main component string to use.
Exceptions
UrlNotAllowedExceptionif one of the components is not allowed for the scheme.
UrlBadComponentExceptionif one of the components contains an invalid character.
ca_mgm::url::UrlBase::UrlBase ( const std::string &  urlString)

Create a new Url object from from percent-encoded URL string.

Parameters
urlStringThe url string.
Exceptions
url::UrlParsingExceptionif parsing of the url fails.
url::UrlNotAllowedExceptionif one of the components is not allowed for the scheme.
url::UrlBadComponentExceptionif one of the components contains an invalid character.

Member Function Documentation

virtual void ca_mgm::url::UrlBase::checkValidFragment ( const std::string &  fragment,
EEncoding  eflag 
) const
protectedvirtual
virtual void ca_mgm::url::UrlBase::checkValidHost ( const std::string &  host,
EEncoding  eflag 
) const
protectedvirtual

Verifies specified host or IP.

It verifies, if the specified host parameter contains a hostname, an IPv4 address in dotted-decimal form or an IPv6 address literal encapsulated within square brackets (RFC3513, Sect. 2.2).

A hostname in the host parameter, may contain national alphanumeric UTF8 characters (letters other than ASCII a-zA-Z) and allows to specify both, a encoded or decoded hostname.

This function does not perform any hostname lookups and supports only IPv6 addresses in "[ ... ]" notation. The "[v ... ]" square bracket format is not supported by this implementation.

Parameters
hostThe host name or IP to verify.
Exceptions
UrlNotSupportedExceptionif the hostname is in the unsuported "[v ... ]" square bracket format.
UrlBadComponentExceptionif the hostname is invalid.
virtual void ca_mgm::url::UrlBase::checkValidPass ( const std::string &  pass,
EEncoding  eflag 
) const
protectedvirtual
virtual void ca_mgm::url::UrlBase::checkValidPathName ( const std::string &  path,
EEncoding  eflag 
) const
protectedvirtual
virtual void ca_mgm::url::UrlBase::checkValidPathParams ( const std::string &  params,
EEncoding  eflag 
) const
protectedvirtual
virtual void ca_mgm::url::UrlBase::checkValidPort ( const std::string &  port,
EEncoding  eflag 
) const
protectedvirtual

Verifies if specified port number is in the range 0..65535.

Parameters
portThe port number to verify.
Exceptions
UrlBadComponentExceptionif the port number is invalid.
virtual void ca_mgm::url::UrlBase::checkValidQueryStr ( const std::string &  querystr,
EEncoding  eflag 
) const
protectedvirtual
virtual void ca_mgm::url::UrlBase::checkValidScheme ( const std::string &  scheme,
EEncoding  eflag 
) const
protectedvirtual
virtual void ca_mgm::url::UrlBase::checkValidUser ( const std::string &  user,
EEncoding  eflag 
) const
protectedvirtual
virtual std::string ca_mgm::url::UrlBase::cleanupPathName ( const std::string &  path,
bool  authority 
) const
protectedvirtual

Utility method to cleanup an encoded path name.

By default, this method makes sure, that the first slash in the path is not encoded, and that the second slash before the first path segment, is encoded (to "%2F"). It modifies the path in the url, for example: "ftp://host//aaa//bbb" to "ftp://host/%2Faaa//bbb" or as encoded path only also "%2f/name" to "/%2fname".

This operation is required to fulfill the path-absolute rule of RFC3986, if there is no authority. It avoids the missinterpretation of the path as an authority separator.

It is not required if there is an authority ("//" behind the "scheme:"), that is in the path-abempty rule, but it is used e.g. in ftp url's defined by RFC1738.

We apply this operation in both cases (for all paths), but if authority is true, the encoding of the second slash depends on the schema configuration (for ftp only).

Parameters
pathThe encoded path name to cleanup.
authorityWhether the url contains authority or not.
Returns
A modified encoded path.
virtual std::string ca_mgm::url::UrlBase::cleanupPathName ( const std::string &  path) const
protectedvirtual

Utility method to cleanup an encoded path name.

This variant of the method checks if the host component in the url is empty or not to differentiate if there is an authority.

Parameters
pathThe encoded path name to cleanup.
Returns
A modified encoded path.
virtual void ca_mgm::url::UrlBase::clear ( )
virtual

Clears all data in the object.

virtual UrlBase* ca_mgm::url::UrlBase::clone ( ) const
virtual

Returns pointer to a copy of the current object.

Should be reimplemented by all derived object using the copy constructor of the derived class, e.g.:

return new MyUrlDerivedFromUrlBase(*this);
Returns
A pointer to a copy of the current object.
std::string ca_mgm::url::UrlBase::config ( const std::string &  opt) const

Get the value of a UrlBase configuration variable.

See configure() method for names an purpose of the configuration variables used in UrlBase class.

Parameters
optThe name of the configuration variable.
Returns
The value of the specified variable or empty string.
void ca_mgm::url::UrlBase::config ( const std::string &  opt,
const std::string &  val 
)

Set the value of a UrlBase configuration variable.

See configure() method for names an purpose of the configuration variables used in UrlBase class.

Parameters
optThe name of the configuration variable.
valThe new value for the configuration variable.
virtual void ca_mgm::url::UrlBase::configure ( )
virtual

Configures behaviour of the instance.

This method is called in UrlBase constructors before any URL components are applied. Derived classes may reimplement this method to change the behaviour of the object. Use the config() methods to query and change them.

The UrlBase class uses following config variables:

  • Common path parameter separators:
    • sep_pathparams ";" Separator used to split path parameters from path name. Setting it to empty string disables splitting of path name and path parameters. Set also rx_pathparams to an empty string.
    • psep_pathparam "," Separator between path parameters.
    • vsep_pathparam "=" Separator between key and value of a path parameter.
  • Common query string separators:
    • psep_querystr "&" Separator between query string parameters.
    • vsep_querystr "=" Separator between key and value of a query parameter.
  • Characters in URL components, that are safe without URL percent-encoding (see ca_mgm::url::encode()).
    • safe_username
    • safe_password
    • safe_hostname
    • safe_pathname
    • safe_pathparams
    • safe_querystr
    • safe_fragment
  • Regular expressions used to verify encoded URL components and their sub-components:
    • rx_username
    • rx_password
    • rx_pathname
    • rx_pathparams
    • rx_querystr
    • rx_fragment
virtual std::string ca_mgm::url::UrlBase::getAuthority ( ) const
virtual

Returns the encoded authority component of the URL.

The returned authority string does not contain the leading "//" separator characters, but just its "user:pass@host:port" content only.

Returns
The encoded authority component string.
virtual std::string ca_mgm::url::UrlBase::getFragment ( EEncoding  eflag) const
virtual

Returns the encoded fragment component of the URL.

Parameters
eflagFlag if the fragment should be percent-decoded or not.
Returns
The encoded fragment component of the URL.
Exceptions
UrlDecodingExceptionif the decoded result string would contain a '\0' character.
virtual std::string ca_mgm::url::UrlBase::getHost ( EEncoding  eflag) const
virtual

Returns the hostname or IP from the URL authority.

In case the Url contains an IPv6 number, it is be surrounded by "[" and "]" characters, for example "[::1]" for an IPv6 localhost address.

Parameters
eflagFlag if the host should be percent-decoded or not.
Returns
The host sub-component from the URL authority.
Exceptions
UrlDecodingExceptionif the decoded result string would contain a '\0' character.
virtual std::vector<std::string> ca_mgm::url::UrlBase::getKnownSchemes ( ) const
virtual

Returns scheme names known by this object.

This method is used in the isValidScheme() method and is intended to be reimplemented by derived classes to return the scheme names it implements (is restricted or compatible to).

For example, if your derived class implements special features of LDAP URL's, this method may return "ldap" and "ldaps" scheme names.

The UrlBase class returns an empty array, that signals that it is useable with all URL's.

Returns
An array with scheme names known by this object.
virtual std::string ca_mgm::url::UrlBase::getPassword ( EEncoding  eflag) const
virtual

Returns the password from the URL authority.

Parameters
eflagFlag if the password should be percent-decoded or not.
Returns
The password sub-component from the URL authority.
Exceptions
UrlDecodingExceptionif the decoded result string would contain a '\0' character.
virtual std::string ca_mgm::url::UrlBase::getPathData ( ) const
virtual

Returns the encoded path component of the URL.

The path data contains the path name, optionally followed by path parameters separated with a ";" character, for example "/foo/bar;version=1.1".

Returns
The encoded path component of the URL.
virtual std::string ca_mgm::url::UrlBase::getPathName ( EEncoding  eflag) const
virtual

Returns the path name from the URL.

Parameters
eflagFlag if the path should be decoded or not.
Returns
The path name sub-component without path parameters from path data component of the URL.
Exceptions
UrlDecodingExceptionif the decoded result string would contain a '\0' character.
virtual std::string ca_mgm::url::UrlBase::getPathParam ( const std::string &  param,
EEncoding  eflag 
) const
virtual

Return the value for the specified path parameter.

For example, if the path parameters string is "foo=1,bar=2" the method will return the substring "1" for the param key "foo" and "2" for the param key "bar".

Parameters
paramThe path parameter key.
eflagFlag if the path parameter keys and values should be decoded or not.
Returns
The value for the path parameter key or empty string.
Exceptions
UrlNotSupportedExceptionif parameter parsing is not supported for a URL (scheme).
UrlDecodingExceptionif the decoded result string would contain a '\0' character.
virtual std::string ca_mgm::url::UrlBase::getPathParams ( ) const
virtual

Returns the encoded path parameters from the URL.

Returns
The encoded path parameters from the URL.
virtual std::vector<std::string> ca_mgm::url::UrlBase::getPathParamsArray ( ) const
virtual

Returns an array with encoded path parameter substrings.

The default path parameter separator is the ',' character. A schema specific object may overide the default separators.

For example, the path parameters string "foo=1,bar=2" is splited by default into an array containing the substrings "foo=1" and "bar=2".

Returns
The encoded path parameters array.
virtual ca_mgm::url::ParamMap ca_mgm::url::UrlBase::getPathParamsMap ( EEncoding  eflag) const
virtual

Returns a string map with path parameter keys and values.

The default path parameter separator is the ',' character, the default key/value separator for the path parameters is the '=' character. A schema specific object may overide the default separators.

For example, the path parameters string "foo=1,bar=2" is splited into a map containing "foo" = "1" and "bar" = "2" by default.

Parameters
eflagFlag if the path parameter keys and values should be decoded or not.
Returns
The path parameters key and values as a string map.
Exceptions
UrlNotSupportedExceptionif parameter parsing is not supported for a URL (scheme).
UrlDecodingExceptionif the decoded result string would contain a '\0' character.
virtual std::string ca_mgm::url::UrlBase::getPort ( ) const
virtual

Returns the port number from the URL authority.

Returns
The port sub-component from the URL authority.
virtual std::string ca_mgm::url::UrlBase::getQueryParam ( const std::string &  param,
EEncoding  eflag 
) const
virtual

Return the value for the specified query parameter.

For example, if the query string is "foo=1,bar=2" the method will return the substring "1" for the param key "foo" and "2" for the param key "bar".

Parameters
paramThe query parameter key.
eflagFlag if the query parameter keys and values should be decoded or not.
Returns
The value for the query parameter key or empty string.
Exceptions
UrlNotSupportedExceptionif parameter parsing is not supported for a URL (scheme).
UrlDecodingExceptionif the decoded result string would contain a '\0' character.
virtual std::string ca_mgm::url::UrlBase::getQueryString ( ) const
virtual

Returns the encoded query string component of the URL.

The query string is returned without first "?" (separator) character. Further "?" characters as in e.g. LDAP URL's remains in the returned string.

Returns
The encoded query string component of the URL.
virtual std::vector<std::string> ca_mgm::url::UrlBase::getQueryStringArray ( ) const
virtual

Returns an array with query string parameter substrings.

The default query string parameter separator is the '&' character. A schema specific object may overide the default separators.

For example, the query string "foo=1&bar=2" is splited by default into an array containing the substrings "foo=1" and "bar=2".

Returns
The query string splited into an array of substrings.
virtual ca_mgm::url::ParamMap ca_mgm::url::UrlBase::getQueryStringMap ( EEncoding  eflag) const
virtual

Returns a string map with query parameter and their values.

The default query string parameter separator is the ',' character, the default key/value separator the '=' character. A schema specific object may overide the default separators.

For example, the query string "foo=1&bar=2" is splited by default into a map containing "foo" = "1" and "bar" = "2".

Parameters
eflagFlag if the query string keys and values should be decoded or not.
Returns
The query string as a key/value string map.
Exceptions
UrlNotSupportedExceptionif parameter parsing is not supported for a URL (scheme).
UrlDecodingExceptionif the decoded result string would contain a '\0' character.
virtual std::string ca_mgm::url::UrlBase::getScheme ( ) const
virtual

Returns the scheme name of the URL.

Returns
Scheme name of the current Url object.
virtual std::string ca_mgm::url::UrlBase::getUsername ( EEncoding  eflag) const
virtual

Returns the username from the URL authority.

Parameters
eflagFlag if the usename should be percent-decoded or not.
Returns
The username sub-component from the URL authority.
Exceptions
UrlDecodingExceptionif the decoded result string would contain a '\0' character.
ViewOptions ca_mgm::url::UrlBase::getViewOptions ( ) const

Return the view options of the current object.

This method is used to query the view options used by the asString() method.

Returns
The current view option combination.
virtual void ca_mgm::url::UrlBase::init ( const UrlComponents components)
virtual

Initializes current object with new URL components.

Parameters
componentsThe url main component string to use.
Exceptions
UrlNotAllowedExceptionif one of the components is not allowed in the scheme.
UrlBadComponentExceptionif one of the components contains an invalid character.
virtual bool ca_mgm::url::UrlBase::isKnownScheme ( const std::string &  scheme) const
virtual

Returns if scheme name is known to this object.

Returns
True, if scheme name is known to this object.
virtual bool ca_mgm::url::UrlBase::isValid ( ) const
virtual

Verifies the Url.

Verifies if the current object contains a non-empty scheme name. Additional semantical URL checks may be performed by derived UrlBase-objects.

Returns
True, if the Url seems to be valid.
virtual bool ca_mgm::url::UrlBase::isValidScheme ( const std::string &  scheme) const
virtual

Verifies specified scheme name.

Verifies the generic syntax of the specified scheme name and if it is contained in the current object's list of known schemes (see getKnownSchemes()) if the list is not empty (as in the UrlBase class).

Parameters
schemeThe scheme name to verify.
Returns
True, if generic scheme name syntax is valid and the scheme name is known to the current object.
UrlBase& ca_mgm::url::UrlBase::operator= ( const UrlBase url)

Assign shared copy of url to the current object.

Upon return, both objects will point to the same underlying data. This state will remain until one of the object is modified.

Parameters
urlThe UrlBase object to make a copy of.
Returns
A reference to this object.
UrlBase& ca_mgm::url::UrlBase::operator= ( const std::string &  urlString)

Assigns parsed percent-encoded URL string to the object.

In case of a parse failure, the object will remain unchanged.

Parameters
urlStringA percent-encoded URL string.
Returns
A reference to this object.
Exceptions
url::UrlParsingExceptionif parsing of the url fails.
url::UrlNotAllowedExceptionif one of the components is not allowed for the scheme.
url::UrlNotSupportedExceptionif the format of one of the components is not supported (e.g. IPvFeature host).
url::UrlBadComponentExceptionif one of the components contains an invalid character.
virtual void ca_mgm::url::UrlBase::setAuthority ( const std::string &  authority)
virtual

Set the authority component in the URL.

The authority string shoud not contain any leading "//" separator characters (just "user:pass@host:port").

Parameters
authorityThe authority component string.
Exceptions
UrlNotAllowedExceptionif the authority has to be empty in for the current scheme.
UrlBadComponentExceptionif the authority contains an invalid character.
UrlParsingExceptionif authority parsing fails.
virtual void ca_mgm::url::UrlBase::setFragment ( const std::string &  fragment,
EEncoding  eflag 
)
virtual

Set the fragment string in the URL.

Parameters
fragmentThe new fragment string.
eflagIf the fragment is encoded or not.
Exceptions
UrlBadComponentExceptionif the querystr contains an invalid character.
virtual void ca_mgm::url::UrlBase::setHost ( const std::string &  host,
EEncoding  eflag 
)
virtual

Set the hostname or IP in the URL authority.

The host parameter may contain a hostname, an IPv4 address in dotted-decimal form or an IPv6 address literal encapsulated within square brackets (RFC3513, Sect. 2.2).

A registered hostname (dns hostname) may contain national alphanumeric UTF8 characters (letters other than ASCII a-zA-Z), that has to be percent-encoded.

Other IP literals in "[v ... ]" square bracket format are not supported by the implementation in UrlBase class.

Parameters
hostThe new hostname or IP address.
eflagIf the registered hostname is encoded or not.
Exceptions
UrlNotAllowedExceptionif the host has to be empty in for the current scheme.
UrlBadComponentExceptionif the host is invalid.
virtual void ca_mgm::url::UrlBase::setPassword ( const std::string &  pass,
EEncoding  eflag 
)
virtual

Set the password in the URL authority.

Parameters
passThe new password.
eflagIf the password is encoded or not.
Exceptions
UrlNotAllowedExceptionif the pass has to be empty in for the current scheme.
UrlBadComponentExceptionif the pass contains an invalid character.
virtual void ca_mgm::url::UrlBase::setPathData ( const std::string &  pathdata)
virtual

Set the path data component in the URL.

By default, the pathdata string may include path parameters separated by the ";" separator character.

Parameters
pathdataThe encoded path data component string.
Exceptions
UrlBadComponentExceptionif the pathdata contains an invalid character.
virtual void ca_mgm::url::UrlBase::setPathName ( const std::string &  path,
EEncoding  eflag 
)
virtual

Set the path name.

Parameters
pathThe new path name.
eflagIf the path name is encoded or not.
Exceptions
UrlBadComponentExceptionif the path name contains an invalid character.
virtual void ca_mgm::url::UrlBase::setPathParam ( const std::string &  param,
const std::string &  value 
)
virtual

Set or add value for the specified path parameter.

Parameters
paramThe decoded path parameter name.
valueThe decoded path parameter value.
Exceptions
UrlNotSupportedExceptionif parameter parsing is not supported for a URL (scheme).
UrlDecodingExceptionif the decoded result string would contain a '\0' character.
virtual void ca_mgm::url::UrlBase::setPathParams ( const std::string &  params)
virtual

Set the path parameters.

Parameters
paramsThe new encoded path parameter string.
Exceptions
UrlBadComponentExceptionif the path params contains an invalid character.
virtual void ca_mgm::url::UrlBase::setPathParamsArray ( const std::vector< std::string > &  parray)
virtual

Set the path parameters.

Parameters
parrayThe array with encoded path parameters.
Exceptions
UrlBadComponentExceptionif the parray contains an invalid character.
virtual void ca_mgm::url::UrlBase::setPathParamsMap ( const ca_mgm::url::ParamMap pmap)
virtual

Set the path parameters.

Parameters
pmapThe map with decoded path parameters.
Exceptions
UrlNotSupportedExceptionif parameter parsing is not supported for a URL (scheme).
virtual void ca_mgm::url::UrlBase::setPort ( const std::string &  port)
virtual

Set the port number in the URL authority.

Parameters
portThe new port number.
Exceptions
UrlNotAllowedExceptionif the port has to be empty in for the current scheme.
UrlBadComponentExceptionif the port is invalid.
virtual void ca_mgm::url::UrlBase::setQueryParam ( const std::string &  param,
const std::string &  value 
)
virtual

Set or add value for the specified query parameter.

Parameters
paramThe decoded query parameter name.
valueThe decoded query parameter value.
Exceptions
UrlNotSupportedExceptionif parameter parsing is not supported for a URL (scheme).
UrlDecodingExceptionif the decoded result string would contain a '\0' character.
virtual void ca_mgm::url::UrlBase::setQueryString ( const std::string &  querystr)
virtual

Set the query string in the URL.

The querystr string parameter is supposed to not to contain the "?" URL query separator character (use just a "foo=bar&x=22" instead of "?foo=bar&x=22").

Parameters
querystrThe new encoded query string.
Exceptions
UrlBadComponentExceptionif the querystr contains an invalid character.
virtual void ca_mgm::url::UrlBase::setQueryStringArray ( const std::vector< std::string > &  qarray)
virtual

Set the query parameters.

Parameters
qarrayThe array with encoded query parameters.
Exceptions
UrlBadComponentExceptionif the qarray contains an invalid character.
virtual void ca_mgm::url::UrlBase::setQueryStringMap ( const ca_mgm::url::ParamMap qmap)
virtual

Set the query parameters.

Parameters
qmapThe map with decoded query parameters.
Exceptions
UrlNotSupportedExceptionif parameter parsing is not supported for a URL (scheme).
virtual void ca_mgm::url::UrlBase::setScheme ( const std::string &  scheme)
virtual

Set the scheme name in the URL.

Parameters
schemeThe new scheme name.
Exceptions
UrlBadComponentExceptionif the scheme contains an invalid character or is empty.
virtual void ca_mgm::url::UrlBase::setUsername ( const std::string &  user,
EEncoding  eflag 
)
virtual

Set the username in the URL authority.

Parameters
userThe new username.
eflagIf the username is encoded or not.
Exceptions
UrlNotAllowedExceptionif the user has to be empty in for the current scheme.
UrlBadComponentExceptionif the user contains an invalid character.
void ca_mgm::url::UrlBase::setViewOptions ( const ViewOptions vopts)

Change the view options of the current object.

This method is used to change the view options used by the asString() method.

Parameters
voptsNew view options combination.
virtual std::string ca_mgm::url::UrlBase::toString ( ) const
virtual

Returns a default string representation of the Url object.

By default, a password in the URL will be hidden.

Returns
A default string representation of the Url object.
virtual std::string ca_mgm::url::UrlBase::toString ( const ca_mgm::url::ViewOptions opts) const
virtual

Returns a string representation of the Url object.

To include a password in the resulting Url string, use:

url.asString(url.getViewOptions() +
Parameters
optsA combination of view options.
Returns
A string representation of the Url object.

Member Data Documentation

RWCOW_pointer<UrlBaseData> ca_mgm::url::UrlBase::m_data
private

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