#include "plaqui/server/runnable.h"
#include "plaqui/server/connection.h"
#include <socket++/sockinet.h>
+#include <sigc++/signal.h>
#include <list>
#include <vector>
/// Lista de información de conexiones de control.
typedef std::vector<ConnectionInfo> ConnectionInfoList;
+ /////////////////////////////////////////////////////////////////////
+ /// \name Señales
+ //@{
+
+ public:
+
+ /// Tipo de señal para indicar que se inició una conexión.
+ typedef SigC::Signal2<void, const std::string&,
+ const Connection::Port&> SignalConnectionOpened;
+
+ /// Obtiene la señal que avisa que se inició una conexión.
+ SignalConnectionOpened& signal_connection_opened(void);
+
+ //@}
+
/////////////////////////////////////////////////////////////////////
// Atributos.
- protected: //FIXME
+ protected:
/// Socket para escuchar conexiones.
sockinetbuf socket;
- private: // FIXME
+
+ private:
+
+ /// Señal que indica que se inició una conexión.
+ SignalConnectionOpened _connection_opened;
/// Conexiones de control.
ConnectionList connections;
/**
* Entra en el loop para atender conexiones.
*/
- virtual void real_run(void);
+ virtual void real_run(void) throw();
protected:
* \note Para saber cuando la tarea fue finalizada puede utilizar
* la señal signal_finished().
*/
- //virtual void finish(void);
+ virtual void finish(void);
/**
* Se encarga de borrar una conexión de la lista cuando finaliza.