]> git.llucax.com Git - z.facultad/75.42/plaqui.git/blobdiff - Server/include/plaqui/server/response.h
* Se agrega el TIP de luca
[z.facultad/75.42/plaqui.git] / Server / include / plaqui / server / response.h
index 3acd2cdae9b9a2b1c57ccafdcdbe9b21c8c28f95..16e52deec09f1e17634bb55474da0833190768bf 100644 (file)
@@ -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.