TFCweb  1.0.4 $Rev: 483 $
TFC Primavera 2012: Nucli d'un servidor web
Mètodes públics | Mètodes Públics Estàtics | Mètodes Privats Estàtics | Atributs Privats | Classes Amigues | Llista de tots els membres
Referència de la Classe Uri

Representació d'una URL en el domini del projecte. Més...

#include <Uri.h>

Mètodes públics

 Uri (const std::string &u) throw (ErrorAnalisiUrl)
 Uri (const Uri &u)
 Constructor de còpia.
const std::string & autoritat () const
 Host (equivalent a host() ) // TODO: Port?
void autoritat (const std::string &v)
 Host (equivalent a host() )
bool es_uri_absoluta () const
 Comprova si la URL és absoluta (conté esquema i host)
const std::string & esquema () const
 Protocol.
void esquema (const std::string &v)
 Protocol.
const std::string & fragment () const
 Fragment (marcador)
void fragment (const std::string &v)
 Fragment (marcador)
const std::string & host () const
 Host (equivalent a autoritat() )
Uri normalitzada () const
 Normalització
 operator std::string () const
 Operador de conversió a cadena.
Urioperator= (const Uri &)
 Operador d'assignació
bool operator== (const Uri &) const
 Operador d'equivalència.
const std::string & params () const
 Paràmetres.
void params (const std::string &p)
 Paràmetres.
const std::string & query () const
 Consulta.
void query (const std::string &v)
 Consulta.
const std::string & ruta () const
 Ruta.
void ruta (const std::string &v) throw (ErrorAnalisiUrl)
 Defineix la ruta.
std::string str () const
 Url completa.
bool te_ruta_absoluta () const
 Comprova si la ruta és absoluta.

Mètodes Públics Estàtics

static std::string codifica (const std::string &s) throw ()
 Codificació de URLs.
static std::string descodifica (const std::string &url, bool &error) throw ()
 Descodificació de URLs.
static Uri normalitza (const Uri &u)
 Obté una versió normalitzada de u.

Mètodes Privats Estàtics

static std::string descodifica (const std::string &) throw (ErrorAnalisiUrl)
 Versió amb excepcions de descodifica(const std::string&, bool&)

Atributs Privats

std::string autoritat_
 "Autoritat" (nom de host)
std::string esquema_
 Esquema de la URL.
std::string fragment_
 Fragment (...#[fragment])
std::string params_
 Paràmetres (...;[params[;params]])
std::string query_
 Cadena de consulta (...?[consulta])
std::string ruta_
 Ruta.

Classes Amigues

std::ostream & operator<< (std::ostream &os, const Uri &u)
 Operador d'impressió

Descripció Detallada

Representació d'una URL en el domini del projecte.

Mireu també
http://tools.ietf.org/html/rfc2068#section-3.2

Definició a la línia 54 del fitxer Uri.h.

Documentació del Constructor i el Destructor

Uri ( const std::string &  u) throw (ErrorAnalisiUrl)
explicit
Uri ( const Uri u)
inline

Constructor de còpia.

Definició a la línia 64 del fitxer Uri.h.

Documentació de les Funcions Membre

const std::string& autoritat ( ) const
inline

Host (equivalent a host() ) // TODO: Port?

Definició a la línia 86 del fitxer Uri.h.

Referències Uri::autoritat_.

Referenciat a Servidor::analitza_peticio(), BOOST_AUTO_TEST_CASE(), Uri::host(), Uri::normalitza(), tfc::operator<<() i anonymous_namespace{Uri.cc}::reconstrueix().

void autoritat ( const std::string &  v)
inline

Host (equivalent a host() )

Definició a la línia 103 del fitxer Uri.h.

Referències Uri::autoritat_.

string codifica ( const std::string &  s) throw ()
static

Codificació de URLs.

Paràmetres
sURL a codificar
Remarca
Tota la cadena s es codificarà (p.e. "http://example.com" es transformarà en "http%3A%2F%2Fexample%2Ecom")
Mireu també
descodifica()

Definició a la línia 463 del fitxer Uri.cc.

string descodifica ( const std::string &  url,
bool &  error 
) throw ()
static

Descodificació de URLs.

Paràmetres
[in]urlCadena de la URL a descodificar
[out]errorSi la cadena conté caràcters codificats incorrectament es possarà en false.
Remarca
Només es descodifiquen els caracters codificats amb signe de percentatge seguit de dos dígits hexadecimals
Mireu també
codifica()

Definició a la línia 410 del fitxer Uri.cc.

string descodifica ( const std::string &  url) throw (ErrorAnalisiUrl)
staticprivate

Versió amb excepcions de descodifica(const std::string&, bool&)

Excepcions
ErrorAnalisiUrlSi es produeix en error en descodificar

Definició a la línia 453 del fitxer Uri.cc.

Referències tfc::Base64::descodifica().

bool es_uri_absoluta ( ) const

Comprova si la URL és absoluta (conté esquema i host)

Invariant
u.es_url_absoluta() == ( u.esquema() != string() && u.autoritat() != string() )

Definició a la línia 337 del fitxer Uri.cc.

const std::string& esquema ( ) const
inline
void esquema ( const std::string &  v)
inline

Protocol.

Definició a la línia 101 del fitxer Uri.h.

Referències Uri::esquema_.

const std::string& fragment ( ) const
inline

Fragment (marcador)

Definició a la línia 96 del fitxer Uri.h.

Referències Uri::fragment_.

Referenciat a BOOST_AUTO_TEST_CASE(), Uri::normalitza(), tfc::operator<<() i anonymous_namespace{Uri.cc}::reconstrueix().

void fragment ( const std::string &  v)
inline

Fragment (marcador)

Definició a la línia 114 del fitxer Uri.h.

Referències Uri::fragment_.

const std::string& host ( ) const
inline

Host (equivalent a autoritat() )

Antiquat:

Definició a la línia 88 del fitxer Uri.h.

Referències Uri::autoritat().

Uri normalitza ( const Uri u)
static

Obté una versió normalitzada de u.

Postcondició
Sigui U = normalitza(u), es complirà:
U.esquema() == u.esquema() &&
U.autoritat() == u.autoritat() &&
U.query() == u.query() &&
U.fragment() == u.fragment()
Si u.es_absoluta() llavors U.es_absoluta() (però no al revès)

Definició a la línia 352 del fitxer Uri.cc.

Referències Uri::autoritat(), anonymous_namespace{Uri.cc}::es_parseable(), Uri::esquema(), Uri::fragment(), anonymous_namespace{Uri.cc}::join_r(), Uri::params(), RFC2068_Sintaxi_URIs::path, Uri::query(), anonymous_namespace{Uri.cc}::reconstrueix(), Uri::ruta() i Uri::ruta_.

Referenciat a Uri::normalitzada().

Uri normalitzada ( ) const
inline

Normalització

Definició a la línia 175 del fitxer Uri.h.

Referències Uri::normalitza().

Referenciat a norm().

operator std::string ( ) const
inline

Operador de conversió a cadena.

Invariant
string(Url(x)) == x # FIXME: Test case

Definició a la línia 133 del fitxer Uri.h.

Referències Uri::str().

Uri & operator= ( const Uri u)

Operador d'assignació

Definició a la línia 316 del fitxer Uri.cc.

Referències Uri::autoritat_, Uri::esquema_, Uri::fragment_, Uri::params_, Uri::query_ i Uri::ruta_.

bool operator== ( const Uri u) const

Operador d'equivalència.

Definició a la línia 330 del fitxer Uri.cc.

Referències Uri::str().

const std::string& params ( ) const
inline

Paràmetres.

Per fer:
TODO: Gestionar o eliminar

Definició a la línia 92 del fitxer Uri.h.

Referències Uri::params_.

Referenciat a Uri::normalitza() i anonymous_namespace{Uri.cc}::reconstrueix().

void params ( const std::string &  p)
inline

Paràmetres.

Per fer:
TODO: Gestionar o eliminar

Definició a la línia 110 del fitxer Uri.h.

Referències Uri::params_.

const std::string& query ( ) const
inline

Consulta.

Definició a la línia 94 del fitxer Uri.h.

Referències Uri::query_.

Referenciat a BOOST_AUTO_TEST_CASE(), Uri::normalitza(), tfc::operator<<() i anonymous_namespace{Uri.cc}::reconstrueix().

void query ( const std::string &  v)
inline

Consulta.

Definició a la línia 112 del fitxer Uri.h.

Referències Uri::query_.

const std::string& ruta ( ) const
inline
void ruta ( const std::string &  v) throw (ErrorAnalisiUrl)

Defineix la ruta.

Excepcions
ErrorAnalisiUrlSi no es pot interpretar v correctament

Definició a la línia 326 del fitxer Uri.cc.

Referències tfc::Base64::descodifica().

string str ( ) const

Url completa.

Definició a la línia 345 del fitxer Uri.cc.

Referències anonymous_namespace{Uri.cc}::reconstrueix().

Referenciat a Servidor::aten(), Uri::operator std::string() i Uri::operator==().

bool te_ruta_absoluta ( ) const

Comprova si la ruta és absoluta.

Remarca
Una ruta buida és equivalent a "/" per tant, és absoluta, si cal distingir, comprovar si ruta() és buida

Definició a la línia 341 del fitxer Uri.cc.

Referenciat a Servidor::analitza_peticio().

Documentació de funcions amigues i relacionades

std::ostream& operator<< ( std::ostream &  os,
const Uri u 
)
friend

Operador d'impressió

Definició a la línia 471 del fitxer Uri.cc.

Documentació de les Dades Membre

std::string autoritat_
private

"Autoritat" (nom de host)

Definició a la línia 184 del fitxer Uri.h.

Referenciat a Uri::autoritat() i Uri::operator=().

std::string esquema_
private

Esquema de la URL.

Definició a la línia 184 del fitxer Uri.h.

Referenciat a Uri::esquema() i Uri::operator=().

std::string fragment_
private

Fragment (...#[fragment])

Definició a la línia 184 del fitxer Uri.h.

Referenciat a Uri::fragment() i Uri::operator=().

std::string params_
private

Paràmetres (...;[params[;params]])

Definició a la línia 184 del fitxer Uri.h.

Referenciat a Uri::operator=() i Uri::params().

std::string query_
private

Cadena de consulta (...?[consulta])

Definició a la línia 184 del fitxer Uri.h.

Referenciat a Uri::operator=() i Uri::query().

std::string ruta_
private

Ruta.

Definició a la línia 184 del fitxer Uri.h.

Referenciat a Uri::normalitza(), Uri::operator=() i Uri::ruta().


La documentació d'aquesta classe es va generar a partir dels següents fitxers: