/// Conexión.
class Connection: public Runnable {
- protected:
+ /////////////////////////////////////////////////////////////////////
+ // Tipos.
+
+ public:
+
+ /// Puerto.
+ typedef unsigned Port;
- /// Tamaño del buffer usado para enviar y recibir datos.
- static const int BUFFER_SIZE = 4096;
+ /////////////////////////////////////////////////////////////////////
+ // Atributos.
+
+ protected:
/// 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:
/**
* Destructor.
*/
- virtual ~Connection(void) {}
+ virtual ~Connection(void);
/**
* 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);
* Constructor.
*
* \param type Tipo de socket a usar.
+ * \param host Host a donde conectarse.
+ * \param port Puerto al cual conectarse.
+ */
+ Connection(const sockbuf::type& type, const std::string& host,
+ const Port& port);
+
+ /**
+ * Constructor.
+ *
+ * \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(void);
+
+ /**
+ * Obtiene el nombre del host local de la conexión.
+ */
+ const std::string get_host(void) const;
+
+ /**
+ * Obtiene el puerto local de la conexión.
*/
- Connection(sockbuf::type type);
+ const Port get_port(void) const;
};