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

Funcions i algorismes de suport. Més...

Espais de Noms

namespace  impl
 Detalls d'implementació

Definicions de Tipus

typedef std::ios_base &( manipulador_ios_base_t )(std::ios_base &)
 Tipus dels manipuladors de std::ios_base.
typedef boost::function
< std::ostream &(std::ostream &)> 
manipulador_ostream_t
 Tipus compatible de manipuladors de std::ostream.

Funcions

template<typename Iterador , typename Separador = std::string>
std::ostream & each_shl (std::ostream &os, Iterador ini, Iterador fi, const Separador &sep="\n")
 Impressió de contenidors.
template<typename Iterador , typename Separador = std::string>
manipulador_ostream_t each_shl (Iterador ini, Iterador fi, const Separador &sep="\n")
 Impressió de contenidors amb destí implícit.
template<typename Contenidor , typename Separador = std::string>
manipulador_ostream_t each_shl (const Contenidor &c, const Separador &sep="\n")
 Impressió de contenidors amb destí implícit.
bool es_canonic (const fs::path &p) throw ()
bool es_canonic (const boost::filesystem::path &p) throw ()
 Comprova si una ruta és canònica.
bool es_llegible (const fs::path &p) throw ()
bool es_llegible (const boost::filesystem::path &p) throw ()
 Comprova si un fitxer o directori és llegible.
template<typename Str >
const Str::value_type final (const Str &s)
 Obté el darrer element d'una col·lecció.
string formata_data (const boost::posix_time::ptime &t, const std::string &fmt)
 Formata una hora/data.
string formata_data (const std::time_t t, const std::string &fmt)
 Formata una hora/data.
std::string formata_data (const std::string &fmt)
 Formata la hora/data actual.
template<typename T >
from_string (const std::string &s, manipulador_ios_base_t base=std::dec)
 Extreu un valor de la cadena s.
boost::posix_time::ptime llegeix_data (const string &s, const string &fmt)
string lpad (const std::string &s, size_t mida, char f= ' ')
 Amplia una cadena per l'esquerra.
string rpad (const std::string &s, size_t mida, char f= ' ')
 Amplia una cadena per la dreta.
template<typename T >
std::string to_string (const T &obj, manipulador_ios_base_t base=std::dec)
 Obté la representació en forma de cadena d'un objecte.

Descripció Detallada

Funcions i algorismes de suport.

Documentació de les Definicions de Tipus

typedef std::ios_base&( manipulador_ios_base_t)(std::ios_base &)

Tipus dels manipuladors de std::ios_base.

Definició a la línia 55 del fitxer utils.h.

typedef boost::function<std::ostream& (std::ostream&)> manipulador_ostream_t

Tipus compatible de manipuladors de std::ostream.

Definició a la línia 58 del fitxer utils.h.

Documentació de les Funcions

std::ostream& tfc::utils::each_shl ( std::ostream &  os,
Iterador  ini,
Iterador  fi,
const Separador &  sep = "\n" 
)

Impressió de contenidors.

Paràmetres
osDestinació
iniPrincipi de la iteració
fiFinal de la iteració
sepSeparador. Cadena inserida després de cada element excepte el darrer
Template Parameters
Iteradortipus d'iterador
Separadortipus del separador

Aplica l'operador << a tots els elements entre ini i fi.
Exemple:

vector<...> v;
cout << each_shl(cout, v.begin(), v.end()) << endl;

Definició a la línia 240 del fitxer utils.h.

Referències tfc::utils::impl::each_shl().

Referenciat a each_shl().

manipulador_ostream_t tfc::utils::each_shl ( Iterador  ini,
Iterador  fi,
const Separador &  sep = "\n" 
)

Impressió de contenidors amb destí implícit.

Paràmetres
iniPrincipi de la iteració
fiFinal de la iteració
sepSeparador. Cadena inserida després de cada element excepte el darrer
Template Parameters
Iteradortipus d'iterador
Separadortipus del separador

Funció generadora. La inserció en un ostream el defineix com a destí. Aplica l'operador << a tots els elements entre ini i fi
Exemple:

vector<...> v;
cout << each_shl(v.begin(), v.end());

Definició a la línia 265 del fitxer utils.h.

manipulador_ostream_t tfc::utils::each_shl ( const Contenidor &  c,
const Separador &  sep = "\n" 
)

Impressió de contenidors amb destí implícit.

Paràmetres
cContenidor
fiFinal de la iteració
sepSeparador. Cadena inserida després de cada element excepte el darrer
Template Parameters
Contenidortipus contenidor
Separadortipus del separador

Funció generadora. La inserció en un ostream el defineix com a destí. Aplica l'operador << a tots els elements de la iteració c.begin() a c.end() (equivalent a

each_shl(c.begin(), c.end())

)
Exemple:

vector<...> v;
v.push_back("hola");
v.push_back("món");
cout << each_shl(v) << endl;

Generarà:

hola
món

Definició a la línia 295 del fitxer utils.h.

Referències each_shl().

bool tfc::utils::es_canonic ( const fs::path &  p) throw ()

Definició a la línia 68 del fitxer utils.cc.

Referenciat a tfc::operator<<().

bool tfc::utils::es_canonic ( const boost::filesystem::path &  p) throw ()

Comprova si una ruta és canònica.

Paràmetres
pRuta a comprovar
Precondició
p existeix
bool tfc::utils::es_llegible ( const fs::path &  p) throw ()
bool tfc::utils::es_llegible ( const boost::filesystem::path &  p) throw ()

Comprova si un fitxer o directori és llegible.

Paràmetres
pRuta a comprovar
Precondició
p existeix
p és un fitxer o directori
Remarca
Les precondicions són relaxades: Si no es respecten símplement retornarà false
const Str::value_type tfc::utils::final ( const Str &  s)

Obté el darrer element d'una col·lecció.

Exemple:

char c = final(std::string("Prova")); // c == 'a'
Precondició
s.size() > 0

Definició a la línia 135 del fitxer utils.h.

Referenciat a Servidor::extreu_capsaleres() i AutoIndex::html().

std::string formata_data ( const boost::posix_time::ptime &  t,
const std::string &  fmt 
)

Formata una hora/data.

Paràmetres
tMarca de temps
fmtFormat (flags de format de Boost Date Time, pràcticament iguals a strftime())
Retorna
Data formatada
Mireu també
http://www.boost.org/doc/libs/1_49_0/doc/html/date_time/date_time_io.html#date_time.format_flags

Exemple: Data HTTP actual:

std::time_t ara_t = second_clock::universal_time();
boost::posix_time::ptime ara = boost::posix_time::from_time_t(ara_t);
std::string d1 = formata_data(ara, "%a, %d %b %Y %T GMT");
// o
std::string d2 = formata_data(ara_t, "%a, %d %b %Y %T GMT");
assert( d1 == d2 );

Definició a la línia 87 del fitxer utils.cc.

Referenciat a tfc::data_http(), formata_data(), Log::marca_de_temps() i anonymous_namespace{AutoIndex.cc}::mtime().

std::string formata_data ( const std::time_t  t,
const std::string &  fmt 
)

Formata una hora/data.

Paràmetres
tMarca de temps
fmtFormat (flags de format de Boost Date Time, pràcticament iguals a strftime())
Retorna
Data formatada
Mireu també
http://www.boost.org/doc/libs/1_49_0/doc/html/date_time/date_time_io.html#date_time.format_flags

Exemple: Data HTTP actual:

std::time_t ara_t = second_clock::universal_time();
boost::posix_time::ptime ara = boost::posix_time::from_time_t(ara_t);
std::string d1 = formata_data(ara, "%a, %d %b %Y %T GMT");
// o
std::string d2 = formata_data(ara_t, "%a, %d %b %Y %T GMT");
assert( d1 == d2 );

Definició a la línia 98 del fitxer utils.cc.

Referències formata_data().

std::string tfc::utils::formata_data ( const std::string &  fmt)
inline

Formata la hora/data actual.

Paràmetres
fmtFormat (flags de format de Boost Date Time, pràcticament iguals a strftime())
Retorna
Data formatada
Mireu també
http://www.boost.org/doc/libs/1_49_0/doc/html/date_time/date_time_io.html#date_time.format_flags
formata_data(const std::time_t, const std::string&)
formata_data(const boost::posix_time::ptime &, const std::string&)

Definició a la línia 311 del fitxer utils.h.

Referències formata_data().

T tfc::utils::from_string ( const std::string &  s,
manipulador_ios_base_t  base = std::dec 
)

Extreu un valor de la cadena s.

Template Parameters
TTipus de l'objecte a extreure
Paràmetres
sValor d'entrada
baseBase numèrica a aplicar
Retorna
Valor extret
Nota
Operació inversa de to_string()
Remarca
Per base decimal boost::lexical_cast és preferible, però no no permet indicar altres bases
std::ios_base&(*)(std::ios_base&) és el tipus dels modificadors de base numèrica de la biblioteca estàndard

Exemple:

int n = from_string<int>("0x0f", std::hex);
assert( n == 15 );
Precondició
L'operador d'extracció (>>) de T sobre una std::ostream és definit

Definició a la línia 118 del fitxer utils.h.

boost::posix_time::ptime tfc::utils::llegeix_data ( const string &  s,
const string &  fmt 
)

Definició a la línia 102 del fitxer utils.cc.

Referències FITXER_I_LINIA_.

std::string lpad ( const std::string &  s,
size_t  mida,
char  f = ' ' 
)

Amplia una cadena per l'esquerra.

Paràmetres
sCadena a ampliar
midaMida mínima de la cadena
fCaràcter amb què ampliar-la

Definició a la línia 75 del fitxer utils.cc.

Referències anonymous_namespace{AutoIndex.cc}::mida().

Referenciat a AutoIndex::html().

std::string rpad ( const std::string &  s,
size_t  mida,
char  f = ' ' 
)

Amplia una cadena per la dreta.

Paràmetres
sCadena a ampliar
midaMida mínima de la cadena
fCaràcter amb què ampliar-la

Definició a la línia 81 del fitxer utils.cc.

Referències anonymous_namespace{AutoIndex.cc}::mida().

Referenciat a AutoIndex::html().

std::string tfc::utils::to_string ( const T &  obj,
manipulador_ios_base_t  base = std::dec 
)

Obté la representació en forma de cadena d'un objecte.

Nota
L'objecte ha de ser imprimible per a convertir-lo
Operació inversa de from_str()
Template Parameters
TTipus de l'objecte a representar
Paràmetres
objObjecte a representar
baseBase numèrica a aplicar
Retorna
Representació textual de obj
Remarca
boost::lexical_cast és preferible allà on es pugui fer servir, l'avantatge d'aquesta funció és poder indicar una base numèrica diferent de la decimal
Mireu també
from_string()
Precondició
L'operador d'inserció (<<) de T sobre una std::istream és definit

Definició a la línia 91 del fitxer utils.h.

Referenciat a Recurs::entity_tag().