TFCweb
1.0.4 $Rev: 483 $
TFC Primavera 2012: Nucli d'un servidor web
|
Representació d'un recurs (fitxer o directori) Abans d'instanciar cal inicialitzar estàticament amb. Més...
#include <Recurs.h>
Tipus Públics | |
typedef boost::asio::ip::tcp::socket | socket_tcp |
typedef std::pair< std::string, std::string > | tipus_capsalera |
typedef std::vector < tipus_capsalera > | tipus_capsaleres |
typedef std::shared_ptr < Transformacio > | transformacio_ptr |
Mètodes públics | |
Recurs (const PeticioHTTP &peticio, const boost::filesystem::path &arrel_servidor) throw (ErrorRutaInexistent) | |
Recurs (const Recurs &r) throw () | |
Constructor de còpia. | |
virtual tipus_capsaleres | capsaleres () const |
Llista de capçaleres específiques del cos a afegir a la resposta. | |
virtual void | envia (boost::asio::ip::tcp::socket &socket) const throw (std::runtime_error) |
| |
virtual void | envia_eom (socket_tcp &socket) const throw (ErrorEscrivintEnSocket) |
Envia el final del missatge. | |
const boost::filesystem::path & | fisica () const |
Ruta física del recurs en el servidor. | |
Recurs & | operator= (const Recurs &r) throw () |
Operador d'assignació | |
const PeticioHTTP & | peticio () const |
virtual bool | pot_generar_capsaleres () const |
Indica si el contingut pot generar capçaleres HTTP. | |
const Uri | publica () const |
Ruta de la petició normalitzada respecte l'arrel del servidor. |
Mètodes Protegits | |
bool | chunked_ok () const |
Comprova si el client accepta chunked. | |
const std::string & | content_encoding () const |
Content-Encoding acceptat per el client | |
bool | deflate_ok () const |
Comprova si el client accepta deflate. | |
virtual size_t | envia (socket_tcp &socket, const std::string &buffer) const throw (ErrorEscrivintEnSocket) |
Envia una cadena sencera. | |
size_t | envia_literal (socket_tcp &socket, const std::string &buffer) const throw (ErrorEscrivintEnSocket) |
Envia una cadena sense aplicar la codificació | |
const std::string & | transfer_encoding () const |
Transfer-Endocing acceptat per el client | |
transformacio_ptr | transformacio () const |
Genera una transformació acceptable per el client. |
Mètodes Privats | |
std::string | entity_tag () const |
Genera la etiqueta d'entitat (ETag) |
Atributs Privats | |
boost::filesystem::path | arrel_servidor_ |
boost::filesystem::path | fisica_ |
Classes Amigues | |
std::ostream & | operator<< (std::ostream &os, const Recurs &r) |
Impressió. |
Representació d'un recurs (fitxer o directori) Abans d'instanciar cal inicialitzar estàticament amb.
|
inherited |
Definició a la línia 86 del fitxer CosResposta.h.
|
inherited |
Definició a la línia 83 del fitxer CosResposta.h.
|
inherited |
Definició a la línia 84 del fitxer CosResposta.h.
|
inherited |
Definició a la línia 85 del fitxer CosResposta.h.
|
explicit |
arrel_servidor | Directori arrel del servidor |
peticio | Petició enviada pel client |
ErrorRutaInexistent | si ruta_peticio no es correspon a una ruta existent en el servidor |
arrel_servidor
existeix, és un directori, és absoluta i canònica Definició a la línia 64 del fitxer Recurs.cc.
Referències RFC2068_Sintaxi_URIs::path.
Constructor de còpia.
Definició a la línia 73 del fitxer Recurs.h.
Referències Recurs::arrel_servidor_ i RFC2068_Sintaxi_URIs::path.
|
virtual |
Llista de capçaleres específiques del cos a afegir a la resposta.
Per defecte, retorna les capçaleres relatives a les transformacions aplicables.
Reimplementat de CosResposta.
Definició a la línia 121 del fitxer Recurs.cc.
Referències tfc::data_http(), anonymous_namespace{AutoIndex.cc}::mida(), anonymous_namespace{AutoIndex.cc}::mtime() i tfc::NomTipusPeticioHTTP::tipus().
|
inlineprotectedinherited |
Comprova si el client accepta chunked.
Definició a la línia 185 del fitxer CosResposta.h.
Referències CosResposta::chunked_ok_.
|
inlineprotectedinherited |
Content-Encoding
acceptat per el client
Definició a la línia 193 del fitxer CosResposta.h.
Referències CosResposta::ce_.
|
inlineprotectedinherited |
Comprova si el client accepta deflate.
Definició a la línia 182 del fitxer CosResposta.h.
Referències CosResposta::deflate_ok_.
|
private |
Genera la etiqueta d'entitat (ETag)
Definició a la línia 148 del fitxer Recurs.cc.
Referències anonymous_namespace{Recurs.cc}::hexadecimal(), anonymous_namespace{AutoIndex.cc}::mida(), anonymous_namespace{AutoIndex.cc}::mtime() i tfc::utils::to_string().
|
virtual |
ErrorLlegintFitxer | Si es produeix un error en la lectura del recurs |
Implementa CosResposta.
|
protectedvirtualinherited |
Envia una cadena sencera.
socket | Socket on escriure |
buffer | Cadena a escriure |
ErrorEscrivintEnSocket | si falla l'enviament de dades |
Definició a la línia 39 del fitxer CosResposta.cc.
|
virtualinherited |
Envia el final del missatge.
Definició a la línia 70 del fitxer CosResposta.cc.
|
protectedinherited |
Envia una cadena sense aplicar la codificació
Definició a la línia 54 del fitxer CosResposta.cc.
|
inline |
Ruta física del recurs en el servidor.
Definició a la línia 99 del fitxer Recurs.h.
Referències Recurs::fisica_.
Referenciat a AutoIndex::AutoIndex() i AutoIndex::directori().
Operador d'assignació
Definició a la línia 85 del fitxer Recurs.h.
Referències Recurs::arrel_servidor_, Recurs::fisica_ i RFC2068_Sintaxi_URIs::path.
|
inlineinherited |
Definició a la línia 160 del fitxer CosResposta.h.
Referències CosResposta::peticio_.
|
inlinevirtualinherited |
Indica si el contingut pot generar capçaleres HTTP.
Per a alguns tipus de recursos dinàmics, com ara scripts, és dessitjable poder modificar les capçaleres.
Reimplementat a ProgramaCGI.
Definició a la línia 156 del fitxer CosResposta.h.
|
inline |
|
inlineprotectedinherited |
Transfer-Endocing
acceptat per el client
Definició a la línia 196 del fitxer CosResposta.h.
Referències CosResposta::te_.
|
inlineprotectedinherited |
Genera una transformació acceptable per el client.
Definició a la línia 190 del fitxer CosResposta.h.
Referències CosResposta::trans_.
|
friend |
|
private |
Definició a la línia 131 del fitxer Recurs.h.
Referenciat a Recurs::operator=() i Recurs::Recurs().
|
private |
Definició a la línia 132 del fitxer Recurs.h.
Referenciat a Recurs::fisica() i Recurs::operator=().