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"
41 /////////////////////////////////////////////////////////////////////
46 /// \todo TODO completar codigos.
47 static const unsigned OK = 200;
48 static const unsigned BAD_REQUEST = 401;
49 static const unsigned NOT_FOUND = 404;
50 static const unsigned CONFLICT = 409;
51 static const unsigned LENGTH_REQUIRED = 411;
52 static const unsigned INTERNAL_SERVER_ERROR = 500;
53 static const unsigned NOT_IMPLEMENTED = 501;
54 static const unsigned HTTP_VERSION_NOT_SUPPORTED = 505;
56 /////////////////////////////////////////////////////////////////////
61 /// Cuerpo del mensaje.
64 public: // TODO hacer privados con get() y set() ???
72 /////////////////////////////////////////////////////////////////////
80 virtual ~HTTPMessage(void);
85 //HTTPMessage(const std::string& http_version = "1.1");
90 HTTPMessage(const std::string& _body = "",
91 const std::string& _version = "1.1");
94 * Obtiene el cuerpo del mensaje.
96 const std::string& get_body(void) const;
99 * Establece el cuerpo del mensaje.
101 * \param _body Cuerpo del mensaje.
103 void set_body(const std::string& _body);
106 * Obtiene los datos del pedido HTTP desde un texto.
108 friend std::istream& operator>>(std::istream& is, HTTPMessage& m);
111 * Convierte el pedido HTTP en texto.
113 friend std::ostream& operator<<(std::ostream& os,
114 const HTTPMessage& m);
117 * Obtiene la razón según un código.
119 * \param code Código de estado.
121 static std::string reason(unsigned code);
129 #endif // PLAQUI_HTTPMESSAGE_H