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 LENGTH_REQUIRED = 411;
50 static const unsigned INTERNAL_SERVER_ERROR = 500;
51 static const unsigned NOT_IMPLEMENTED = 501;
52 static const unsigned HTTP_VERSION_NOT_SUPPORTED = 505;
58 /// Cuerpo del mensaje.
61 protected: // TODO hacer privados con get() y set() ???
78 virtual ~HTTPMessage(void);
83 //HTTPMessage(const std::string& http_version = "1.1");
88 HTTPMessage(const std::string& _body = "",
89 const std::string& _version = "1.1");
92 * Obtiene el cuerpo del mensaje.
94 const std::string& get_body(void) const;
97 * Establece el cuerpo del mensaje.
99 * \param _body Cuerpo del mensaje.
101 void set_body(const std::string& _body);
104 * Obtiene los datos del pedido HTTP desde un texto.
106 friend std::istream& operator>>(std::istream& is, HTTPMessage& m);
109 * Convierte el pedido HTTP en texto.
111 friend std::ostream& operator<<(std::ostream& os,
112 const HTTPMessage& m);
115 * Obtiene la razón según un código.
117 * \param code Código de estado.
119 static std::string reason(unsigned code);
127 #endif // PLAQUI_HTTPMESSAGE_H