}
void PlaQui::Server::TCPServer::on_connection_finished(
- PlaQui::Server::Connection* connection) {
+ Connection* connection) {
#ifdef DEBUG
std::cerr << __FILE__ << ": on_connection_finished(connection = "
<< connection << ")" << std::endl;
#endif // DEBUG
// TODO: poner lock.
connections.remove(connection);
+#ifdef DEBUG
+ std::cerr << __FILE__ << ": lista de conexiones" << std::endl;
+ for (ConnectionList::const_iterator i = connections.begin();
+ i != connections.end(); i++) {
+ std::cerr << "\t " << *i << std::endl;
+ }
+#endif // DEBUG
// TODO: sacar lock.
}
void PlaQui::Server::TCPServer::real_run(void) {
#ifdef DEBUG
- std::cerr << __FILE__ << ": real_run" << std::endl;
+ std::cerr << __FILE__ << ": real_run()" << std::endl;
#endif // DEBUG
- PlaQui::Server::Connection* conn;
+ Connection* connection;
while (!stop) {
// TODO: ver tema de timeout o como salir de un accept().
// Forma grasa de salir del accept: crear conexion que salga al toque.
- conn = new_connection(socket.accept());
+ connection = new_connection(socket.accept());
+#ifdef DEBUG
+ std::cerr << __FILE__ << ": real_run(): connection = " << connection
+ << std::endl;
+#endif // DEBUG
// TODO: poner lock.
- connections.push_back(conn);
+ connections.push_back(connection);
+#ifdef DEBUG
+ std::cerr << __FILE__ << ": real_run(): lista de conexiones" << std::endl;
+ for (ConnectionList::const_iterator i = connections.begin();
+ i != connections.end(); i++) {
+ std::cerr << "\t " << *i << std::endl;
+ }
+#endif // DEBUG
// TODO: sacar lock.
// TODO: esto va en Server::new_connection()
// Conecto la señal para cuando termina una conexión, borrarla.
- conn->signal_finished().connect(
- SigC::bind<PlaQui::Server::Connection*>(
+ connection->signal_finished().connect(
+ SigC::bind<Connection*>(
SigC::slot_class(*this,
- &PlaQui::Server::TCPServer::on_connection_finished),
- conn));
- conn->run();
+ &TCPServer::on_connection_finished),
+ connection));
+ connection->run();
}
}