/// Código de respuesta.
typedef enum {
- OK = 0,
- UNKNOWN_ERROR,
- INVALID_TARGET,
- INVALID_COMMAND,
- ARGUMENT_MISSING,
- ALLREADY_EXISTS,
- CONNECTION_NOT_FOUND,
- TRANSMISSION_NOT_FOUND,
- PLANT_NOT_FOUND,
- ELEMENT_NOT_FOUND,
- ELEMENT_INPUT_NOT_FOUND,
- ERROR_STARTING_TRANSMISSION,
- ERROR_GETING_PLANT_XML,
- ERROR_CHANGING_ELEMENT_INPUT
+ OK, ///< Comando ejecutado con éxito.
+ UNKNOWN_ERROR, ///< Error desconocido.
+ INVALID_TARGET, ///< Destino del comando inválido.
+ INVALID_COMMAND, ///< Comando inválido para el destino.
+ ARGUMENT_MISSING, ///< Faltan argumentos para el comando.
+ ALLREADY_EXISTS, ///< Ya existe la transmisión.
+ CONNECTION_NOT_FOUND, ///< Conexión no encontrada.
+ TRANSMISSION_NOT_FOUND, ///< Transmisión no encontrada.
+ PLANT_NOT_FOUND, ///< Planta no encontrada.
+ ELEMENT_NOT_FOUND, ///< Elemento no encontrado.
+ ELEMENT_INPUT_NOT_FOUND, ///< No existe la entrada para el elemento.
+ ERROR_STARTING_TRANSMISSION, ///< No se pudo empezar la transmisión.
+ ERROR_GETING_PLANT_XML, ///< No se pudo obtener el XML de la planta.
+ ERROR_CHANGING_ELEMENT_INPUT ///< No se pudo cambiar la entrada del elemento.
} Code;
private:
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);
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.
/////////////////////////////////////////////////////////////////////
// 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;
/// 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:
/**
/**
* 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.