X-Git-Url: https://git.llucax.com/z.facultad/75.42/plaqui.git/blobdiff_plain/6e0194f46ac77c18bfeabf84ef94a32f23e41073..d664a4c16bb56138b53e8d6dba92e199bd3ea6c7:/Server/include/plaqui/server/string.h diff --git a/Server/include/plaqui/server/string.h b/Server/include/plaqui/server/string.h index 292055f..41e83ac 100644 --- a/Server/include/plaqui/server/string.h +++ b/Server/include/plaqui/server/string.h @@ -29,8 +29,12 @@ #define PLAQUI_STRING_H #include +#include +#include -namespace Plaqui { +namespace PlaQui { + +namespace Server { /// Conexión. class String: public std::string { @@ -43,7 +47,12 @@ namespace Plaqui { /** * Destructor. */ - virtual ~String(void) {} + virtual ~String(void); + + /** + * Constructor. + */ + String(void); /** * Constructor. @@ -52,6 +61,17 @@ namespace Plaqui { */ String(const std::string& str); + /** + * Constructor a partir de un vector. + * Convierte el vector en string uniendo sus componentes a traves + * del separador. + * + * \param v Vector. + * \param sep Separador. + */ + String(const std::vector& v, + const std::string& sep); + /** * Elmina caracteres al inicio y fin de un string. * @@ -69,8 +89,49 @@ namespace Plaqui { */ String& to_lower(void); + /** + * Fracciona una cadena convirtiendola en un vector. + * + * \param sep Caracter usado como separador. + */ + std::vector split(char sep) const; + + /** + * Concatena los elementos de un vector. + * + * \param v Vector. + * \param sep Separador. + */ + static String join(const std::vector& v, + const std::string& sep); + + /** + * Convierte un string a otro tipo. + * + * \param p Parametro del tipo al que se quiere convertir. + */ + template < class T > T& to(T& p) const { + std::stringstream ss(*this); + ss >> p; + return p; + } + + /** + * Convierte un tipo a string. + * + * \param p Parametro del tipo que se quiere convertir a string. + */ + template < class T > String& from(const T& p) { + std::stringstream ss; + ss << p; + ss >> (*this); + return *this; + } + }; } +} + #endif // PLAQUI_STRING_H