]> git.llucax.com Git - z.facultad/75.42/plaqui.git/blobdiff - Server/include/plaqui/server/command.h
Se pasa la conexion suicida al finish del TCPServer para que sea 'transparente'.
[z.facultad/75.42/plaqui.git] / Server / include / plaqui / server / command.h
index fafa951771fad114699cb73b4f0fce2dfe59a92c..6f78b534f47152ad6cd9b62875c746f721d082a3 100644 (file)
@@ -28,7 +28,9 @@
 #ifndef PLAQUI_COMMAND_H
 #define PLAQUI_COMMAND_H
 
+#include "httperror.h"
 #include "httprequest.h"
+#include <socket++/sockstream.h>
 #include <string>
 #include <vector>
 #include <istream>
@@ -41,6 +43,7 @@ namespace Server {
        /// Pedido HTTP.
        class Command: private HTTPRequest {
 
+               /////////////////////////////////////////////////////////////////////
                // Tipos.
 
                public:
@@ -48,6 +51,7 @@ namespace Server {
                        /// Tipo de métodos HTTP reconocidos.
                        typedef std::vector<std::string> Arguments;
 
+               /////////////////////////////////////////////////////////////////////
                // Atributos.
 
                private:
@@ -61,6 +65,7 @@ namespace Server {
                        /// Lista de argumentos que recibe el comando.
                        Arguments args;
 
+               /////////////////////////////////////////////////////////////////////
                // Métodos.
 
                private:
@@ -80,8 +85,8 @@ namespace Server {
                        /**
                         * Constructor.
                         */
-                       Command(const std::string& target = "",
-                                       const std::string& command = "");
+                       Command(const std::string& _target = "",
+                                       const std::string& _command = "");
 
                        /**
                         * Establece el destino.
@@ -114,21 +119,26 @@ namespace Server {
                        const Arguments& get_args(void) const;
 
                        /**
-                        * Agrega un argumentos.
+                        * Agrega un argumento.
                         */
                        void add_arg(const std::string& arg);
 
+                       /**
+                        * Agrega un argumento.
+                        */
+                       void add_arg(const unsigned& arg);
+
                        /**
                         * Obtiene el comando desde un pedido HTTP completo.
                         */
                        friend std::istream& operator>>(std::istream& is,
-                                       Command& command);
+                                       Command& command) throw(HTTPError, sockerr, ios::failure);
 
                        /**
                         * Convierte el comando a un pedido HTTP completo.
                         */
                        friend std::ostream& operator<<(std::ostream& os,
-                                       const Command& command);
+                                       const Command& command) throw(sockerr);
 
        };