X-Git-Url: https://git.llucax.com/z.facultad/75.42/plaqui.git/blobdiff_plain/e76a2b3254a9ddd5902230ca21c532168d0e93b4..212f9ae5dc8899bab8b23ed13d81c28c510db3c3:/Server/src/controlclient.cpp diff --git a/Server/src/controlclient.cpp b/Server/src/controlclient.cpp index 75e330b..653fcae 100644 --- a/Server/src/controlclient.cpp +++ b/Server/src/controlclient.cpp @@ -43,7 +43,9 @@ ControlClient::~ControlClient(void) { << ": destructor." << endl; #endif // DEBUG // TODO Temporal: espero que el receiver muera. - receiver->finish(true); + // Conectar señal on_receiver_finished() y esperar a que el puntero sea + // NULL para saber que terminó. + receiver->finish(); } ControlClient::ControlClient(const string& _host, @@ -75,14 +77,14 @@ void ControlClient::real_run(void) { try { } catch (const sockerr& e) { // TODO Poner una señal de error específica? - error(e.serrno(), e.errstr()); + signal_error().emit(e.serrno(), e.errstr()); return; } // TODO sacar signal_connected? connected(); // TODO Temporal: el receiver empieza a escuchar. receiver->run(); - while (!stop) { + while (!stop()) { HTTPResponse response; try { //Glib::Mutex::Lock lock(socket_mutex); @@ -90,10 +92,10 @@ void ControlClient::real_run(void) { // Si se cerró el socket. } catch (const ios::failure& e) { // TODO poner buenos codigos de error. - error(1000000, "Se desconectó."); + signal_error().emit(1000000, "Se desconectó."); return; } catch (const sockerr& e) { - error(e.serrno(), e.errstr()); + signal_error().emit(e.serrno(), e.errstr()); return; // Si hay un error al parsear la respuesta. } catch (const HTTPResponse::Error& e) { @@ -120,7 +122,7 @@ void ControlClient::send(const Command& command) { try { socket << command << flush; } catch (const sockerr& e) { - error(e.serrno(), e.errstr()); + signal_error().emit(e.serrno(), e.errstr()); finish(); } #ifdef DEBUG