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 protected: // TODO hacer privados con get() y set() ???
79 virtual ~HTTPMessage(void);
84 //HTTPMessage(const std::string& http_version = "1.1");
89 HTTPMessage(const std::string& _body = "",
90 const std::string& _version = "1.1");
93 * Obtiene el cuerpo del mensaje.
95 const std::string& get_body(void) const;
98 * Establece el cuerpo del mensaje.
100 * \param _body Cuerpo del mensaje.
102 void set_body(const std::string& _body);
105 * Obtiene los datos del pedido HTTP desde un texto.
107 friend std::istream& operator>>(std::istream& is, HTTPMessage& m);
110 * Convierte el pedido HTTP en texto.
112 friend std::ostream& operator<<(std::ostream& os,
113 const HTTPMessage& m);
116 * Obtiene la razón según un código.
118 * \param code Código de estado.
120 static std::string reason(unsigned code);
128 #endif // PLAQUI_HTTPMESSAGE_H