#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. | |
| UrlBase (const BLOCXX_NAMESPACE::String &urlString) | |
| UrlBase & | operator= (const UrlBase &url) |
Assign shared copy of url to the current object. | |
| UrlBase & | operator= (const BLOCXX_NAMESPACE::String &urlString) |
| Assigns parsed percent-encoded URL string to the object. | |
| virtual void | clear () |
| Clears all data in the object. | |
| virtual UrlBase * | clone () const |
| virtual void | init (const UrlComponents &components) |
| Initializes current object with new URL components. | |
| virtual BLOCXX_NAMESPACE::StringArray | getKnownSchemes () const |
| Returns scheme names known by this object. | |
| virtual bool | isKnownScheme (const BLOCXX_NAMESPACE::String &scheme) const |
| Returns if scheme name is known to this object. | |
| virtual bool | isValidScheme (const BLOCXX_NAMESPACE::String &scheme) const |
| Verifies specified scheme name. | |
| virtual bool | isValid () const |
| Verifies the Url. | |
| virtual BLOCXX_NAMESPACE::String | toString () const |
| virtual BLOCXX_NAMESPACE::String | toString (const limal::url::ViewOptions &opts) const |
| virtual BLOCXX_NAMESPACE::String | getScheme () const |
| virtual BLOCXX_NAMESPACE::String | getAuthority () const |
| virtual BLOCXX_NAMESPACE::String | getUsername (EEncoding eflag) const |
| virtual BLOCXX_NAMESPACE::String | getPassword (EEncoding eflag) const |
| virtual BLOCXX_NAMESPACE::String | getHost (EEncoding eflag) const |
| virtual BLOCXX_NAMESPACE::String | getPort () const |
| virtual BLOCXX_NAMESPACE::String | getPathData () const |
| virtual BLOCXX_NAMESPACE::String | getPathName (EEncoding eflag) const |
| virtual BLOCXX_NAMESPACE::String | getPathParams () const |
| virtual BLOCXX_NAMESPACE::StringArray | getPathParamsArray () const |
| virtual limal::url::ParamMap | getPathParamsMap (EEncoding eflag) const |
| virtual BLOCXX_NAMESPACE::String | getPathParam (const BLOCXX_NAMESPACE::String ¶m, EEncoding eflag) const |
| virtual BLOCXX_NAMESPACE::String | getQueryString () const |
| virtual BLOCXX_NAMESPACE::StringArray | getQueryStringArray () const |
| virtual limal::url::ParamMap | getQueryStringMap (EEncoding eflag) const |
| virtual BLOCXX_NAMESPACE::String | getQueryParam (const BLOCXX_NAMESPACE::String ¶m, EEncoding eflag) const |
| virtual BLOCXX_NAMESPACE::String | getFragment (EEncoding eflag) const |
| virtual void | setScheme (const BLOCXX_NAMESPACE::String &scheme) |
| Set the scheme name in the URL. | |
| virtual void | setAuthority (const BLOCXX_NAMESPACE::String &authority) |
| Set the authority component in the URL. | |
| virtual void | setUsername (const BLOCXX_NAMESPACE::String &user, EEncoding eflag) |
| Set the username in the URL authority. | |
| virtual void | setPassword (const BLOCXX_NAMESPACE::String &pass, EEncoding eflag) |
| Set the password in the URL authority. | |
| virtual void | setHost (const BLOCXX_NAMESPACE::String &host, EEncoding eflag) |
| Set the hostname or IP in the URL authority. | |
| virtual void | setPort (const BLOCXX_NAMESPACE::String &port) |
| Set the port number in the URL authority. | |
| virtual void | setPathData (const BLOCXX_NAMESPACE::String &pathdata) |
| Set the path data component in the URL. | |
| virtual void | setPathName (const BLOCXX_NAMESPACE::String &path, EEncoding eflag) |
| Set the path name. | |
| virtual void | setPathParams (const BLOCXX_NAMESPACE::String ¶ms) |
| Set the path parameters. | |
| virtual void | setPathParamsArray (const BLOCXX_NAMESPACE::StringArray &parray) |
| Set the path parameters. | |
| virtual void | setPathParamsMap (const limal::url::ParamMap &pmap) |
| Set the path parameters. | |
| virtual void | setPathParam (const BLOCXX_NAMESPACE::String ¶m, const BLOCXX_NAMESPACE::String &value) |
| Set or add value for the specified path parameter. | |
| virtual void | setQueryString (const BLOCXX_NAMESPACE::String &querystr) |
| Set the query string in the URL. | |
| virtual void | setQueryStringArray (const BLOCXX_NAMESPACE::StringArray &qarray) |
| Set the query parameters. | |
| virtual void | setQueryStringMap (const limal::url::ParamMap &qmap) |
| Set the query parameters. | |
| virtual void | setQueryParam (const BLOCXX_NAMESPACE::String ¶m, const BLOCXX_NAMESPACE::String &value) |
| Set or add value for the specified query parameter. | |
| virtual void | setFragment (const BLOCXX_NAMESPACE::String &fragment, EEncoding eflag) |
| Set the fragment string in the URL. | |
| virtual void | configure () |
| BLOCXX_NAMESPACE::String | config (const BLOCXX_NAMESPACE::String &opt) const |
| void | config (const BLOCXX_NAMESPACE::String &opt, const BLOCXX_NAMESPACE::String &val) |
| ViewOptions | getViewOptions () const |
| void | setViewOptions (const ViewOptions &vopts) |
Protected Member Functions | |
| virtual BLOCXX_NAMESPACE::String | cleanupPathName (const BLOCXX_NAMESPACE::String &path, bool authority) const |
| virtual BLOCXX_NAMESPACE::String | cleanupPathName (const BLOCXX_NAMESPACE::String &path) const |
| virtual void | checkValidScheme (const BLOCXX_NAMESPACE::String &scheme, EEncoding eflag) const |
| virtual void | checkValidUser (const BLOCXX_NAMESPACE::String &user, EEncoding eflag) const |
| virtual void | checkValidPass (const BLOCXX_NAMESPACE::String &pass, EEncoding eflag) const |
| virtual void | checkValidHost (const BLOCXX_NAMESPACE::String &host, EEncoding eflag) const |
| Verifies specified host or IP. | |
| virtual void | checkValidPort (const BLOCXX_NAMESPACE::String &port, EEncoding eflag) const |
| Verifies if specified port number is in the range 0..65535. | |
| virtual void | checkValidPathName (const BLOCXX_NAMESPACE::String &path, EEncoding eflag) const |
| virtual void | checkValidPathParams (const BLOCXX_NAMESPACE::String ¶ms, EEncoding eflag) const |
| virtual void | checkValidQueryStr (const BLOCXX_NAMESPACE::String &querystr, EEncoding eflag) const |
| virtual void | checkValidFragment (const BLOCXX_NAMESPACE::String &fragment, EEncoding eflag) const |
Private Attributes | |
| BLOCXX_NAMESPACE::COWReference< UrlBaseData > | m_data |
The UrlBase class implements default behaviour for URL manipulations and a base for implementation of scheme- specialized URL's for the Url class.
|
|
Destroys the current object. |
|
|
Create an empty Url object. |
|
|
Create a new Url object as copy of the given one.
|
|
|
Construct new object and initializes it with specified URL components.
|
|
|
Create a new Url object from from percent-encoded URL string.
|
|
||||||||||||
|
|
|
||||||||||||
|
Verifies specified host or IP.
It verifies, if the specified
A hostname in the 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.
|
|
||||||||||||
|
|
|
||||||||||||
|
|
|
||||||||||||
|
|
|
||||||||||||
|
Verifies if specified port number is in the range 0..65535.
|
|
||||||||||||
|
|
|
||||||||||||
|
|
|
||||||||||||
|
|
|
|
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.
|
|
||||||||||||
|
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
|
|
|
Clears all data in the object.
|
|
|
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);
|
|
||||||||||||
|
Set the value of a UrlBase configuration variable. See configure() method for names an purpose of the configuration variables used in UrlBase class.
|
|
|
Get the value of a UrlBase configuration variable. See configure() method for names an purpose of the configuration variables used in UrlBase class.
|
|
|
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:
|
|
|
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 fragment component of the URL.
|
|
|
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.
|
|
|
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 the password from the URL authority.
|
|
|
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 path name from the URL.
|
|
||||||||||||
|
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".
|
|
|
Returns the encoded path parameters from the URL.
|
|
|
Returns an array with encoded path parameter substrings.
The default path parameter separator is the 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 a string map with path parameter keys and values.
The default path parameter separator is the For example, the path parameters string "foo=1,bar=2" is splited into a map containing "foo" = "1" and "bar" = "2" by default.
|
|
|
Returns the port number from the URL authority.
|
|
||||||||||||
|
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".
|
|
|
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 an array with query string parameter substrings.
The default query string parameter separator is the 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 a string map with query parameter and their values.
The default query string parameter separator is the For example, the query string "foo=1&bar=2" is splited by default into a map containing "foo" = "1" and "bar" = "2".
|
|
|
Returns the scheme name of the URL.
|
|
|
Returns the username from the URL authority.
|
|
|
Return the view options of the current object. This method is used to query the view options used by the asString() method.
|
|
|
Initializes current object with new URL components.
|
|
|
Returns if scheme name is known to this object.
|
|
|
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.
|
|
|
Verifies specified scheme name.
Verifies the generic syntax of the specified
|
|
|
Assigns parsed percent-encoded URL string to the object. In case of a parse failure, the object will remain unchanged.
|
|
|
Assign shared copy of Upon return, both objects will point to the same underlying data. This state will remain until one of the object is modified.
|
|
|
Set the authority component in the URL.
The
|
|
||||||||||||
|
Set the fragment string in the URL.
|
|
||||||||||||
|
Set the hostname or IP in the URL authority.
The 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.
|
|
||||||||||||
|
Set the password in the URL authority.
|
|
|
Set the path data component in the URL.
By default, the
|
|
||||||||||||
|
Set the path name.
|
|
||||||||||||
|
Set or add value for the specified path parameter.
|
|
|
Set the path parameters.
|
|
|
Set the path parameters.
|
|
|
Set the path parameters.
|
|
|
Set the port number in the URL authority.
|
|
||||||||||||
|
Set or add value for the specified query parameter.
|
|
|
Set the query string in the URL.
The
|
|
|
Set the query parameters.
|
|
|
Set the query parameters.
|
|
|
Set the scheme name in the URL.
|
|
||||||||||||
|
Set the username in the URL authority.
|
|
|
Change the view options of the current object. This method is used to change the view options used by the asString() method.
|
|
|
Returns a string representation of the Url object. To include a password in the resulting Url string, use: url.asString(url.getViewOptions() +
url::ViewOptions::WITH_PASSWORD);
|
|
|
Returns a default string representation of the Url object. By default, a password in the URL will be hidden.
|
|
|
|
1.4.6