X-Git-Url: https://git.llucax.com/z.facultad/75.42/plaqui.git/blobdiff_plain/ffc9f02ea0544d4b1aa86e29afe12a2b4bace953..4472e0afab063b00af9301e85a8d9083e6261c4f:/Server/include/plaqui/server/response.h?ds=sidebyside diff --git a/Server/include/plaqui/server/response.h b/Server/include/plaqui/server/response.h index 3acd2cd..16e52de 100644 --- a/Server/include/plaqui/server/response.h +++ b/Server/include/plaqui/server/response.h @@ -46,7 +46,7 @@ namespace Server { /// Código de respuesta. typedef enum { - OK = 0, + OK, UNKNOWN_ERROR, INVALID_TARGET, INVALID_COMMAND, @@ -83,10 +83,6 @@ namespace Server { protected: - //virtual void on_start_document(void); - - //virtual void on_end_document(void); - virtual void on_start_element(const std::string& name, const AttributeMap& attrs); @@ -94,18 +90,6 @@ namespace Server { virtual void on_characters(const std::string& chars); - //virtual void on_comment(const std::string& text); - - //virtual void on_warning(const std::string& error); - - //virtual void on_error(const std::string& error); - - //virtual void on_fatal_error(const std::string& error); - - //virtual void on_validity_error(const std::string& error); - - //virtual void on_validity_warning(const std::string& error); - public: /// Destructor. @@ -123,9 +107,7 @@ namespace Server { ///////////////////////////////////////////////////////////////////// // Atributos. - // FIXME private: hacer get/set y build tipo command. - - public: + private: /// Version de la respuesta (del formato XML usado en la respuesta). std::string xml_version; @@ -136,12 +118,19 @@ namespace Server { /// Descripción de la respuesta. std::string xml_description; - /// Cuerpo del mensaje XML. - std::string xml_body; + /// Contenido del mensaje XML. + std::string xml_contents; ///////////////////////////////////////////////////////////////////// // Métodos. + private: + + /** + * Construye la respuesta XML dentro del mensaje HTTP. + */ + void build(void); + public: /** @@ -157,38 +146,63 @@ namespace Server { /** * Constructor. */ - Response(const std::string& body, const std::string& desc = "", + Response(const std::string& contents, const std::string& desc = "", const Code& code = OK); /** - * Obtiene el cuerpo del mensaje. + * Obtiene la versión de la respuesta. */ - //std::string body(void) const; + const std::string& get_version(void) const; /** - * Establece el cuerpo del mensaje. + * Establece la versión de la respuesta. * - * \param body_ Cuerpo del mensaje. + * \param version_ Versión de la respuesta. */ - //const std::string& body(const std::string& body_); + const std::string& set_version(const std::string& version_); /** * Obtiene el cuerpo del mensaje. */ - //Code code(void) const; + const Code& get_code(void) const; /** * Establece el código de respuesta. * * \param _code Código de respuesta nuevo. */ - //const Code& code(const Code& code_); + const Code& set_code(const Code& code_); + + /** + * Obtiene la descripción de la respuesta. + */ + const std::string& get_description(void) const; + + /** + * Establece la descripción de la respuesta. + * + * \param description_ Descripción de la respuesta. + */ + const std::string& set_description(const std::string& description_); + + /** + * Obtiene el contenido del mensaje. + */ + const std::string& get_contents(void) const; + + /** + * Establece el contenido del mensaje. + * + * \param contents_ Contenido del mensaje. + */ + const std::string& set_contents(const std::string& contents_); /** * Obtiene los datos de la respuesta HTTP desde un texto. */ friend std::istream& operator>>(std::istream& is, Response& resp) - /*throw(HTTPResponse::Error, std::ios::failure, sockerr)*/; + throw(HTTPResponse::Error, std::ios::failure, sockerr, + xmlpp::parse_error); /** * Convierte la respuesta HTTP en texto.