]> git.llucax.com Git - z.facultad/75.42/plaqui.git/blobdiff - Server/include/plaqui/server/httpresponse.h
hay pequenias modificaciones en el workplace, se cuelga por eso pero en un rato lo...
[z.facultad/75.42/plaqui.git] / Server / include / plaqui / server / httpresponse.h
index 936d2a35e0473d6e0b31c7f35f9a308d1a448ac8..f4a2db093da3406a94cfc9e8e2ff044974d0833e 100644 (file)
@@ -28,7 +28,8 @@
 #ifndef PLAQUI_HTTPRESPONSE_H
 #define PLAQUI_HTTPRESPONSE_H
 
-#include "httpmessage.h"
+#include "plaqui/server/httperror.h"
+#include "plaqui/server/httpmessage.h"
 #include <string>
 
 namespace PlaQui {
@@ -38,9 +39,21 @@ namespace Server {
        /// Respuesta HTTP.
        class HTTPResponse: public HTTPMessage {
 
+               // Tipos.
+
+               public:
+
+                       typedef enum {
+                               INVALID_HTTP_RESPONSE,
+                               INVALID_HTTP_VERSION,
+                               INVALID_HTTP_RESPONSE_CODE,
+                               MISSING_HTTP_RESPONSE_CODE
+                       } Error;
+
                // Atributos.
 
-               protected:
+               //protected: FIXME - hacer privado con get/set?
+               public:
 
                        /// Código de estado.
                        unsigned status_code;
@@ -60,32 +73,31 @@ namespace Server {
                        /**
                         * Constructor.
                         */
-                       HTTPResponse(const std::string& version = "1.1");
+                       HTTPResponse(const std::string& body = "",
+                                       const std::string& version = "1.1");
 
                        /**
                         * Constructor.
                         */
-                       HTTPResponse(const Serializable& body,
-                                       const std::string& version = "1.1");
+                       HTTPResponse(const HTTPError& error);
 
                        /**
                         * Constructor.
                         */
-                       HTTPResponse(unsigned status_code, const std::string& reason,
-                                       const std::string& version = "1.1");
+                       HTTPResponse(unsigned status_code, const std::string& body = "");
 
                        /**
                         * Constructor.
                         */
-                       HTTPResponse(unsigned status_code, const std::string& reason,
-                                       const std::string& body,
-                                       const std::string& version = "1.1");
+                       //HTTPResponse(unsigned status_code, const std::string& reason,
+                       //              const std::string& body,
+                       //              const std::string& version = "1.1");
 
                        /**
                         * Obtiene los datos de la respuesta HTTP desde un texto.
                         */
                        friend std::istream& operator>>(std::istream& is,
-                                       const HTTPResponse& resp);
+                                       HTTPResponse& resp) throw(Error, std::ios::failure);
 
                        /**
                         * Convierte la respuesta HTTP en texto.