X-Git-Url: https://git.llucax.com/z.facultad/75.42/plaqui.git/blobdiff_plain/6bffb655ac989fe4f115763270f84175bf24e4bb..289cd57714db01c97f3fa7cb65efedf30114919f:/Server/include/plaqui/server/connection.h diff --git a/Server/include/plaqui/server/connection.h b/Server/include/plaqui/server/connection.h index 0d7660a..7eda172 100644 --- a/Server/include/plaqui/server/connection.h +++ b/Server/include/plaqui/server/connection.h @@ -38,13 +38,15 @@ namespace Server { /// Conexión. class Connection: public Runnable { - // Constantes. + ///////////////////////////////////////////////////////////////////// + // Tipos. - protected: + public: - /// Tamaño del buffer usado para enviar y recibir datos. - //static const int BUFFER_SIZE = 4096; + /// Puerto. + typedef unsigned Port; + ///////////////////////////////////////////////////////////////////// // Atributos. protected: @@ -52,9 +54,16 @@ namespace Server { /// Socket a usar en la conexión. iosockinet socket; + /// Host. + std::string host; + + /// Puerto. + Port port; + /// Mutex para el socket. //Glib::Mutex socket_mutex; + ///////////////////////////////////////////////////////////////////// // Métodos. public: @@ -67,7 +76,7 @@ namespace Server { /** * Constructor. * - * \param socket Descriptor de socket a usar en la conexión. + * \param sd Descriptor de socket a usar en la conexión. */ Connection(const sockbuf::sockdesc& sd); @@ -75,29 +84,41 @@ namespace Server { * Constructor. * * \param type Tipo de socket a usar. + * \param host Host a donde conectarse. + * \param port Puerto al cual conectarse. */ - Connection(sockbuf::type type); + Connection(const sockbuf::type& type, const std::string& host, + const Port& port); /** - * Finaliza la conexión. + * Constructor. * - * \param attach Si es true, la función no retorna hasta que no - * finalice la tearea (no recomendable). + * \param host Host a donde conectarse. + * \param port Puerto al cual conectarse. + */ + Connection(const std::string& host, const Port& port); + + /** + * Finaliza la conexión. * * \note Para saber cuando la tarea fue finalizada puede utilizar * la señal signal_finished(). */ - virtual void finish(bool attach = false); + virtual void finish(void); /** * Obtiene el nombre del host local de la conexión. + * \todo TODO - Debería devolver una copia? Porque podría morir la + * conexion y nosotros seguir usando la variable destruida. */ - std::string get_peerhost(void); + const std::string& get_host(void) const; /** * Obtiene el puerto local de la conexión. + * \todo TODO - Debería devolver una copia? Porque podría morir la + * conexion y nosotros seguir usando la variable destruida. */ - unsigned get_peerport(void); + const Port& get_port(void) const; };