davix  0.4.1
Public Member Functions | Static Public Member Functions
Davix::Uri Class Reference

Uri parser. More...

#include <davix_uri.hpp>

Public Member Functions

 Uri ()
 Construct an empty invalid Uri.
 
 Uri (const std::string &uri_string)
 construct a new Davix Uri from a string URL
 
 Uri (const Uri &uri)
 Copy constructor.
 
Urioperator= (const Uri &orig)
 assignment operator More...
 
const std::string & getString () const
 
int getPort () const
 
const std::string & getProtocol () const
 
const std::string & getHost () const
 
const std::string & getPath () const
 
const std::string & getUserInfo () const
 
const std::string & getPathAndQuery () const
 
const std::string & getQuery () const
 
StatusCode::Code getStatus () const
 
bool equal (const Uri &u1) const
 test if two URI are equals More...
 
bool operator== (const Uri &u2) const
 compare oepration More...
 

Static Public Member Functions

static std::string escapeString (const std::string &str)
 Escape string. More...
 
static std::string unescapeString (const std::string &str)
 Unescape urI. More...
 
static Uri fromRelativePath (const Uri &uri, const std::string &relPath)
 create a new Uri from URI and a relative associated path More...
 

Detailed Description

Uri parser.

convenience class for uri parsing

Uri myuri("https://johnsmith:12345678@example.org:443/myfolder/myfile?type=personal#overthere");
cout << "Full uri: " << myuri.getString() << endl <<
"Port: " << myuri.getPort() << endl <<
"Protocol: " << myuri.getProtocol() << endl <<
"Host: " << myuri.getHost() << endl <<
"Path: " << myuri.getPath() << endl <<
"Query: " << myuri.getQuery() << endl <<
"Path and query: " << myuri.getPathAndQuery() << endl <<
"User info: " << myuri.getUserInfo() << endl;
/*
Output:
Full uri: https://johnsmith:12345678@example.org:443/myfolder/myfile?type=personal#overthere
Port: 443
Protocol: https
Host: example.org
Path: /myfolder/myfile
Query: type=personal
Path and query: /myfolder/myfile?type=personal
User info: johnsmith:12345678
*/

Member Function Documentation

bool Davix::Uri::equal ( const Uri u1) const

test if two URI are equals

Parameters
u1
Returns
true if equal, else false
static std::string Davix::Uri::escapeString ( const std::string &  str)
static

Escape string.

Parameters
strURL to escape
Returns
encoded string
static Uri Davix::Uri::fromRelativePath ( const Uri uri,
const std::string &  relPath 
)
static

create a new Uri from URI and a relative associated path

Parameters
urioriginal URI
relPathrelative path
Returns
new URI from this path
const std::string& Davix::Uri::getHost ( ) const

get the host name

Returns
return the hostname or an empty string if error
const std::string& Davix::Uri::getPath ( ) const

get the path part of the Uri

Returns
return the path of the Uri or an empty string if error
const std::string& Davix::Uri::getPathAndQuery ( ) const

get a concatenation of the path and the query argument of the URI

Returns
return a path + query arguments concatenation or an empty string if error
int Davix::Uri::getPort ( ) const

get the port number

Returns
return the prot number of 0 if unspecified
const std::string& Davix::Uri::getProtocol ( ) const

get the protocol scheme

Returns
return the protocol scheme or an empty string if error
const std::string& Davix::Uri::getQuery ( ) const

get the query argument part of the uri

Returns
return the query path string or an empty string if not exist or if error
StatusCode::Code Davix::Uri::getStatus ( ) const

Status of the Uri see StatusCode::Code

Returns
StatusCode::OK if success or StatusCode::UriParsingError if error
const std::string& Davix::Uri::getString ( ) const

get a string representation of the full uri

Returns
return the path or an empty string if error
const std::string& Davix::Uri::getUserInfo ( ) const

gextract user information from the URI

Returns
return the path of the Uri or an empty string if error
Uri& Davix::Uri::operator= ( const Uri orig)

assignment operator

Parameters
orig
Returns
bool Davix::Uri::operator== ( const Uri u2) const

compare oepration

Parameters
u2
Returns
true if u2 == current uri
static std::string Davix::Uri::unescapeString ( const std::string &  str)
static

Unescape urI.

Parameters
strURL to escape
Returns
unencoded string

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