X-Git-Url: https://git.llucax.com/z.facultad/75.42/plaqui.git/blobdiff_plain/1de5f8fa25dcea9fb9de9707d75120f762ce3a87..ab9300aaf1217f0c3b45dd5f1f1fdc1c5e5bd1be:/Server/src/tcpserver.cpp diff --git a/Server/src/tcpserver.cpp b/Server/src/tcpserver.cpp index c00a8b6..4131224 100644 --- a/Server/src/tcpserver.cpp +++ b/Server/src/tcpserver.cpp @@ -55,36 +55,54 @@ PlaQui::Server::TCPServer::TCPServer(int port): } 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( + connection->signal_finished().connect( + SigC::bind( SigC::slot_class(*this, - &PlaQui::Server::TCPServer::on_connection_finished), - conn)); - conn->run(); + &TCPServer::on_connection_finished), + connection)); + connection->run(); } }