TFCweb  1.0.4 $Rev: 483 $
TFC Primavera 2012: Nucli d'un servidor web
Espais de Noms | Classes | Definicions de Tipus | Enumeracions | Funcions
Referència de l'Espai de Noms tfc

Espai de noms del Treball de Final de Carrera. Més...

Espais de Noms

namespace  Base64
 Codificació i descodificació de cadenes de text amb la codificació Base 64.
namespace  debug
 Eines addicionals per a comprovar el funcionament del servidor mentre es desenvolupa.
namespace  Fixtures
 Espai de noms de les classes fixture, utilitzades per proporcionar un context a les proves unitàries.
namespace  FrasesEstatHTTP
 Encapsulament del mapeig entre codi d'estat i frase d'estat.
namespace  NomTipusPeticioHTTP
 Encapsulament de la traducció de tipus de petició al seu nom.
namespace  portabilitat
 Eines per treballar de manera similar en diferents plataformes.
namespace  RegistreTipusMIME
 Encapsulació del registre i consulta de tipus MIME.
namespace  utils
 Funcions i algorismes de suport.

Classes

class  AjudaDemanada
 Indica que s'ha demanat ajuda a la línia de comandes ($ tfcweb –help) Més...
class  AplicadorTransformacio
 Aplica una transformació a un origen i una destinació Més...
class  AplicadorTransformacioBase
 Classe base d'implementació de AplicadorTransformacio, no instanciable. Més...
class  AutoIndex
 Generació del llistat d'un directori. Més...
class  CadenaTransformacions
 Transformacio encadenada Exemple: Transformació "deflate,chunked": Més...
class  CanviNivellMissatge
 Canvi de nivell de log del missatge. Més...
class  CapsaleraHTTP
 Representació d'una capçalera HTTP. Més...
class  Cerber
class  Configuracio
 Configuració carregada. Més...
class  CosPaginaError
class  CosPeticio
 Cos dels missatges de petició Més...
class  CosResposta
 Classe base del cos dels missatges de resposta. Més...
class  CosTextual
 Creació d'una resposta a partir d'un text. Més...
class  CuaConcurrent
 Implementació d'una cua concurrent amb locking. Més...
class  DestiLogging
 Classe base dels destins de logging. Més...
class  ErrorAnalisiUrl
 Indica un error en l'anàlisi sintàctic d'una URL. Més...
class  ErrorConfiguracio
 Representa un error en la configuració Més...
class  ErrorDestiNoAssociat
 Indica que s'ha intentat operar sobre un destí de logging no associat a l'objecte Log. Més...
class  ErrorEscrivintEnSocket
class  ErrorFormatDataIncorrecte
class  ErrorHTTP
 Error base HTTP; normalment indica que es respondrà al client amb un missatge d'error. Més...
class  ErrorHTTPBadRequest
 Petició HTTP incorrecta (familia d'errors 4xx) Més...
class  ErrorHTTPIntern
 Error intern del servidor (familia d'errors 5xx) Més...
class  ErrorLiniaComandes
 Representa un error en la línia de comandes. Més...
class  ErrorLlegintFitxer
 Indica que s'ha produït un error en intentar llegir els continguts d'un fitxer. Més...
class  ErrorLogNoValid
 Indica que s'ha intentat utilitzar com a fitxer no vàlid (directori o no escribible) Més...
class  ErrorMetodeDesconegut
 Indica que s'ha trobat un mètode HTTP desconegut en una petició Més...
class  ErrorNoImplementat
 Llençat per mètodes no implementats. Més...
class  ErrorOpcions
 Classe base dels error en les opcions (configuració o línia de comandes) Més...
class  ErrorRebentDades
 Indica un error de lectura del socket, en intentar-ne llegir. Més...
class  ErrorRutaInexistent
 Indica que s'ha intentat l'accés a una ruta d'arxiu inexistent. Més...
class  ErrorTFC
 Excepció base de totes les excepcions del projecte. Més...
class  ErrorThreadPoolTancada
class  Es_Pair_De_Strings
 Restricció (constraint): T respon a la interfície de std::pair<std::string, std::string> Més...
class  Es_Pot_Cridar_Sense_Arguments
 Restricció (constraint): T es pot cridar com si fós una funció amb la signatura void (void) Més...
class  FuncioEscriptoraOstream
 Escriptura de blocs en un ostream. Més...
class  FuncioExtractoraIstream
 Extracció de blocs des d'un istream. Més...
class  Log
 Interfície de control de Logging. Més...
class  ManipuladorParametritzat
class  MissatgeHTTP
 Classe base de missatges HTTP. Més...
class  MissatgeLog
 Missatge individual de log. Més...
class  PeticioHTTP
 Representació d'una petició HTTP. Més...
class  ProgramaCGI
 Interfície cap a un script CGI. Més...
class  Recurs
 Representació d'un recurs (fitxer o directori) Abans d'instanciar cal inicialitzar estàticament amb. Més...
class  RecursDinamic
class  RespostaHTTP
 Representació d'un resposta HTTP. Més...
class  Servidor
class  Te_Operador_Extraccio
 Restricció (constraint): T té definit l'operador d'extracció (>>) sobre objectes del tipus TOrigen. Més...
class  Te_Operador_Insercio
 Restricció (constraint): T té definit l'operador d'inserció (<<) sobre objectes de tipus TDesti. Més...
class  ThreadPool
 Implementació del patró ThreadPool. Més...
class  Transformacio
 Interfície de les transformacions. Més...
class  TransformacioChunked
 Transformació chunked. Més...
class  TransformacioDeflate
class  TransformacioIdentity
 Transformació identity (nul·la) Més...
class  Uri
 Representació d'una URL en el domini del projecte. Més...
class  VersioDemanada
 Indica que s'ha demanat informació de versió a la línia de comandes ($ tfcweb –version) Més...

Definicions de Tipus

typedef unsigned short FlagsPermis
 Composició de valors a partir de Permis (p.e. PROTEGIT|LECTURA)

Enumeracions

enum  CodiEstatHTTP {
  CODI_100 = 100, CODI_101, CODI_200 = 200, CODI_201,
  CODI_202, CODI_203, CODI_204, CODI_205,
  CODI_206, CODI_300 = 300, CODI_301, CODI_302,
  CODI_303, CODI_304, CODI_305, CODI_306,
  CODI_307, CODI_400 = 400, CODI_401, CODI_402,
  CODI_403, CODI_404, CODI_405, CODI_406,
  CODI_407, CODI_408, CODI_409, CODI_410,
  CODI_411, CODI_412, CODI_413, CODI_414,
  CODI_415, CODI_416, CODI_417, CODI_500 = 500,
  CODI_501, CODI_502, CODI_503, CODI_504,
  CODI_505
}
 Codis HTTP coneguts. Més...
enum  EstatTransformacioInversa { TRANSFORMAT, NO_TRANSFORMAT, FORMAT_INCORRECTE }
 Possibles estats en cridar Transformacio::destransforma() Més...
enum  NivellLog {
  NivellDebug = 1, NivellInfo, NivellWarning, NivellError,
  NIVELL_PER_DEFECTE_LOG = NivellDebug, NIVELL_MES_SILENCIOS = NivellError, NIVELL_MES_VERBOS = NivellDebug, NIVELL_PER_DEFECTE_MISSATGE = NivellWarning
}
 Nivells de logging. Més...
enum  Permis {
  PRIVAT = 0x01, PROTEGIT = 0x02, LECTURA = 0x04, ESCRIPTURA = 0x08,
  EXECUCIO = 0x10
}
 Modelació dels possibles permisos. Més...
enum  TipusPeticioHTTP {
  GET = 1, POST, HEAD, OPTIONS,
  TRACE, PUT, METODE_DELETE, CONNECT,
  desconegut
}
 Tipus de peticions HTTP/1.1. Més...
enum  VersioHTTP {
  HTTP_DESCONEGUT, HTTP_0_9, HTTP_1_0, HTTP_1_1,
  HTTP_1_X, HTTP_SUPERIOR
}
 Indicació de versió d'HTTP. Més...

Funcions

void commit (MissatgeLog &ml)
 Manipulador final de missatge log: Imprimir la línia actual.
std::string data_http (std::time_t t)
 Generació d'una data en el format estàndard HTTP.
std::string data_http (const boost::posix_time::ptime &pt)
 Generació d'una data en el format estàndard HTTP.
string data_http (time_t t)
string data_http ()
 Generació de la data actual en format HTTP.
time_t llegeix_data_http (const std::string &s) throw (ErrorFormatDataIncorrecte)
 Interpretació d'una data HTTP.
MissatgeLog log ()
 Interfície de creació de missatges de log.
std::shared_ptr
< ManipuladorParametritzat
nivell (NivellLog n)
 Manipulador parametritzat: Indicació del nivell de logging de l'entrada.
template<typename TIt , typename TImpl >
void nivell_sortida_i (TIt beg, TIt end, const TImpl &d, NivellLog nn) throw (ErrorDestiNoAssociat)
template<typename TIt , typename TImpl >
NivellLog nivell_sortida_i (TIt beg, TIt end, const TImpl &d) throw (ErrorDestiNoAssociat)
string nom_permis (FlagsPermis f)
 Forma textual dels permisos.
ostream & operator<< (std::ostream &os, tfc::VersioHTTP v)
 Impressió transparent dels valors simbòlics de VersioHTTP.
ostream & operator<< (ostream &os, const Cerber &c)
ostream & operator<< (ostream &os, const Configuracio &c)
ostream & operator<< (ostream &os, const Uri &u)
MissatgeLogrollback (MissatgeLog &ml)
 Manipulador de missatge de log: Cancel·lar la línia actual de ml.

Descripció Detallada

Espai de noms del Treball de Final de Carrera.

Documentació de les Definicions de Tipus

typedef unsigned short FlagsPermis

Composició de valors a partir de Permis (p.e. PROTEGIT|LECTURA)

Definició a la línia 46 del fitxer Permisos.h.

Documentació dels Tipus de les Enumeracions

Codis HTTP coneguts.

Invariant
Cada codi té el valor numèric corresponent (p.e. ((int) CODI_404) == 404)
Valors de les Enumeracions:
CODI_100 
CODI_101 
CODI_200 
CODI_201 
CODI_202 
CODI_203 
CODI_204 
CODI_205 
CODI_206 
CODI_300 
CODI_301 
CODI_302 
CODI_303 
CODI_304 
CODI_305 
CODI_306 
CODI_307 
CODI_400 
CODI_401 
CODI_402 
CODI_403 
CODI_404 
CODI_405 
CODI_406 
CODI_407 
CODI_408 
CODI_409 
CODI_410 
CODI_411 
CODI_412 
CODI_413 
CODI_414 
CODI_415 
CODI_416 
CODI_417 
CODI_500 
CODI_501 
CODI_502 
CODI_503 
CODI_504 
CODI_505 

Definició a la línia 40 del fitxer CodisEstatHTTP.h.

Possibles estats en cridar Transformacio::destransforma()

Valors de les Enumeracions:
TRANSFORMAT 

Transformació correcta.

NO_TRANSFORMAT 

Transformació errònia (p.e.

dades insuficients)

FORMAT_INCORRECTE 

Transformació errònia i no sol·lucionable amb més dades.

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

enum NivellLog

Nivells de logging.

Mireu també
nivell(NivellLog)
Valors de les Enumeracions:
NivellDebug 
NivellInfo 
NivellWarning 
NivellError 
NIVELL_PER_DEFECTE_LOG 
NIVELL_MES_SILENCIOS 
NIVELL_MES_VERBOS 
NIVELL_PER_DEFECTE_MISSATGE 

Definició a la línia 116 del fitxer Log.h.

enum Permis

Modelació dels possibles permisos.

Valors de les Enumeracions:
PRIVAT 

No es permet cap mena d'accés.

PROTEGIT 

Només amb contrasenya.

LECTURA 

Permís de lectura (GET, HEAD, POST...)

ESCRIPTURA 

Permís d'escriptura (PUT, DELETE)

EXECUCIO 

Permís d'execució de CGIs.

Definició a la línia 38 del fitxer Permisos.h.

Tipus de peticions HTTP/1.1.

Mireu també
NomTipusPeticioHTTP::nom_tipus()
Valors de les Enumeracions:
GET 
POST 
HEAD 
OPTIONS 
TRACE 
PUT 
METODE_DELETE 
CONNECT 
desconegut 

Tipus no definit o no suportat.

Definició a la línia 48 del fitxer PeticioHTTP.h.

enum VersioHTTP

Indicació de versió d'HTTP.

Valors de les Enumeracions:
HTTP_DESCONEGUT 
HTTP_0_9 
HTTP_1_0 
HTTP_1_1 
HTTP_1_X 
HTTP_SUPERIOR 

Definició a la línia 95 del fitxer PeticioHTTP.h.

Documentació de les Funcions

void commit ( MissatgeLog ml)

Manipulador final de missatge log: Imprimir la línia actual.

Quan s'insereix commit a ml es termina la línia i es força la sincronització.
Exemple:

log() << "Hola" << commit;

Definició a la línia 278 del fitxer Log.cc.

Referenciat a Servidor::aten(), Servidor::aten_peticio_escriptura(), Servidor::aten_peticio_lectura(), BOOST_AUTO_TEST_CASE(), ProgramaCGI::envia(), Servidor::envia_resposta(), Servidor::extreu_capsaleres(), Servidor::extreu_cos(), main() i Executor::operator()().

std::string tfc::data_http ( std::time_t  t)

Generació d'una data en el format estàndard HTTP.

Nota
El format estàndard sempre utilitza l'horari GMT.
Paràmetres
tData en format std::time_t
Retorna
Cadena amb la data

Exemple: Dilluns 16 d'abril de 2012 a les 3:30:45, GMT+2:

Mon, 16 Apr 2012 01:30:45 GMT
Invariant
std::string tfc::data_http ( const boost::posix_time::ptime &  pt)
inline

Generació d'una data en el format estàndard HTTP.

Nota
El format estàndard sempre utilitza l'horari GMT.
Paràmetres
tData en format std::time_t
Retorna
Cadena amb la data

Exemple: Dilluns 16 d'abril de 2012 a les 3:30:45, GMT+2:

Mon, 16 Apr 2012 01:30:45 GMT
Invariant

Definició a la línia 67 del fitxer DataHTTP.h.

Referències data_http().

string tfc::data_http ( time_t  t)

Definició a la línia 167 del fitxer DataHTTP.cc.

Referències tfc::utils::formata_data().

Referenciat a Servidor::aten(), BOOST_AUTO_TEST_CASE(), Recurs::capsaleres() i data_http().

std::string data_http ( )

Generació de la data actual en format HTTP.

Mireu també
data_http(std::time_t)

Definició a la línia 171 del fitxer DataHTTP.cc.

Referències tfc::utils::formata_data().

time_t llegeix_data_http ( const std::string &  s) throw (ErrorFormatDataIncorrecte)

Interpretació d'una data HTTP.

Nota
Invers de data_http(time_t)
Paràmetres
sRepresentació textual de la data en un dels formats acceptats en HTTP
Remarca
RFC 2068, 3.3.1: A l'hora d'interpretar s'han de suportar els tres formats següents:
Sun, 06 Nov 1994 08:49:37 GMT // RFC 822
Sunday, 06-Nov-94 08:49:37 GMT // RFC 850
Sun Nov 6 08:49:37 1994 // ANSI C asctime()
(a l'hora de generar, cal utilitzar el primer
Retorna
Data/hora extreta
Invariant

Definició a la línia 179 del fitxer DataHTTP.cc.

Referències anonymous_namespace{DataHTTP.cc}::DIES_SETMANA, anonymous_namespace{DataHTTP.cc}::extreu_asctime(), anonymous_namespace{DataHTTP.cc}::extreu_rfc822(), anonymous_namespace{DataHTTP.cc}::extreu_rfc850(), anonymous_namespace{DataHTTP.cc}::MESOS, anonymous_namespace{DataHTTP.cc}::RE_ASCTIME(), anonymous_namespace{DataHTTP.cc}::RE_RFC850() i anonymous_namespace{DataHTTP.cc}::tfc_timegm().

Referenciat a BOOST_AUTO_TEST_CASE().

MissatgeLog log ( )
std::shared_ptr< ManipuladorParametritzat > nivell ( NivellLog  n)

Manipulador parametritzat: Indicació del nivell de logging de l'entrada.

Remarca
Inserible en un missatge de logging
Mireu també
NivellLog

Exemple:

log() << nivell(NIVELL_ERROR) << "Això és un error" << commit;

Definició a la línia 309 del fitxer Log.cc.

Referenciat a BOOST_AUTO_TEST_CASE(), Log::imprimeix(), DestiLogging::nivell(), FunctorCanviNivell::operator()() i CanviNivellMissatge::operator()().

void tfc::nivell_sortida_i ( TIt  beg,
TIt  end,
const TImpl &  d,
NivellLog  nn 
) throw (ErrorDestiNoAssociat)

Definició a la línia 192 del fitxer Log.cc.

Referenciat a Log::nivell_sortida().

NivellLog tfc::nivell_sortida_i ( TIt  beg,
TIt  end,
const TImpl &  d 
) throw (ErrorDestiNoAssociat)

Definició a la línia 204 del fitxer Log.cc.

std::string nom_permis ( FlagsPermis  f)

Forma textual dels permisos.

Definició a la línia 139 del fitxer Permisos.cc.

Referències ESCRIPTURA, EXECUCIO, LECTURA, anonymous_namespace{Permisos.cc}::MASCARA_PERMIS, PRIVAT i PROTEGIT.

Referenciat a Configuracio::Configuracio() i operator<<().

std::ostream & operator<< ( ostream &  os,
VersioHTTP  v 
)

Impressió transparent dels valors simbòlics de VersioHTTP.

Definició a la línia 95 del fitxer PeticioHTTP.cc.

Referències HTTP_0_9, HTTP_1_0, HTTP_1_1, HTTP_1_X, HTTP_DESCONEGUT i HTTP_SUPERIOR.

ostream& tfc::operator<< ( ostream &  os,
const Cerber &  c 
)

Definició a la línia 130 del fitxer Permisos.cc.

Referències nom_permis(), Cerber::per_defecte_ i Cerber::regles_.

ostream& tfc::operator<< ( std::ostream &  os,
const Configuracio &  c 
)
ostream& tfc::operator<< ( std::ostream &  os,
const Uri u 
)

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

Referències Uri::autoritat(), Uri::esquema(), Uri::fragment(), Uri::query() i Uri::ruta().

MissatgeLog & rollback ( MissatgeLog ml)

Manipulador de missatge de log: Cancel·lar la línia actual de ml.

Definició a la línia 282 del fitxer Log.cc.

Referències MissatgeLog::oss_.