1 // vim: set noexpandtab tabstop=4 shiftwidth=4:
2 //----------------------------------------------------------------------------
4 //----------------------------------------------------------------------------
5 // This file is part of PlaQui.
7 // PlaQui is free software; you can redistribute it and/or modify it under the
8 // terms of the GNU General Public License as published by the Free Software
9 // Foundation; either version 2 of the License, or (at your option) any later
12 // PlaQui is distributed in the hope that it will be useful, but WITHOUT ANY
13 // WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
14 // FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
17 // You should have received a copy of the GNU General Public License along
18 // with PlaQui; if not, write to the Free Software Foundation, Inc., 59 Temple
19 // Place, Suite 330, Boston, MA 02111-1307 USA
20 //----------------------------------------------------------------------------
21 // Creado: dom oct 26 20:20:44 ART 2003
22 // Autores: Leandro Lucarella <llucare@fi.uba.ar>
23 //----------------------------------------------------------------------------
28 #ifndef PLAQUI_HTTPMESSAGE_H
29 #define PLAQUI_HTTPMESSAGE_H
31 #include "plaqui/server/httpheaders.h"
45 /// \todo TODO completar codigos.
46 static const unsigned OK = 200;
47 static const unsigned BAD_REQUEST = 401;
48 static const unsigned NOT_FOUND = 404;
49 static const unsigned CONFLICT = 409;
50 static const unsigned LENGTH_REQUIRED = 411;
51 static const unsigned INTERNAL_SERVER_ERROR = 500;
52 static const unsigned NOT_IMPLEMENTED = 501;
53 static const unsigned HTTP_VERSION_NOT_SUPPORTED = 505;
59 /// Cuerpo del mensaje.
62 public: // TODO hacer privados con get() y set() ???
77 virtual ~HTTPMessage(void);
82 //HTTPMessage(const std::string& http_version = "1.1");
87 HTTPMessage(const std::string& _body = "",
88 const std::string& _version = "1.1");
91 * Obtiene el cuerpo del mensaje.
93 const std::string& get_body(void) const;
96 * Establece el cuerpo del mensaje.
98 * \param _body Cuerpo del mensaje.
100 void set_body(const std::string& _body);
103 * Obtiene los datos del pedido HTTP desde un texto.
105 friend std::istream& operator>>(std::istream& is, HTTPMessage& m);
108 * Convierte el pedido HTTP en texto.
110 friend std::ostream& operator<<(std::ostream& os,
111 const HTTPMessage& m);
114 * Obtiene la razón según un código.
116 * \param code Código de estado.
118 static std::string reason(unsigned code);
126 #endif // PLAQUI_HTTPMESSAGE_H