#include "plaqui/server/runnable.h"
#include <socket++/sockinet.h>
-namespace Plaqui {
+namespace PlaQui {
+
+namespace Server {
/// Conexión.
class Connection: public Runnable {
+ // Constantes.
+
protected:
/// Tamaño del buffer usado para enviar y recibir datos.
- static const int BUFFER_SIZE = 4096;
+ //static const int BUFFER_SIZE = 4096;
+
+ // Atributos.
+
+ protected:
/// Socket a usar en la conexión.
iosockinet socket;
+ /// Mutex para el socket.
+ //Glib::Mutex socket_mutex;
+
+ // Métodos.
+
public:
/**
* Destructor.
*/
- virtual ~Connection(void) {}
+ virtual ~Connection(void);
/**
* Constructor.
/**
* Constructor.
*
- * \param socket Socket a usar en la conexión.
+ * \param type Tipo de socket a usar.
*/
- //Connection(const sockinetbuf& sb);
+ Connection(sockbuf::type type);
/**
- * Constructor.
+ * Finaliza la conexión.
*
- * \param type Tipo de socket a usar.
+ * \param attach Si es true, la función no retorna hasta que no
+ * finalice la tearea (no recomendable).
+ *
+ * \note Para saber cuando la tarea fue finalizada puede utilizar
+ * la señal signal_finished().
*/
- Connection(sockbuf::type type);
+ virtual void finish(bool attach = false);
+
+ /**
+ * Obtiene el nombre del host local de la conexión.
+ */
+ std::string get_peerhost(void);
+
+ /**
+ * Obtiene el puerto local de la conexión.
+ */
+ unsigned get_peerport(void);
};
}
+}
+
#endif // PLAQUI_CONNECTION_H