#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 {
/// 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:
/**
* 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.