]> git.llucax.com Git - z.facultad/75.42/plaqui.git/blobdiff - Server/src/transmitter.cpp
Agrego 2 ejemplos con problemas con la logica de control. El cliente la
[z.facultad/75.42/plaqui.git] / Server / src / transmitter.cpp
index 6ab9260ae3a3267b81e81ef7c9f7bd8b83ac9890..9d0e24df263c02503e4a867ed8d75563ad5517ab 100644 (file)
@@ -64,14 +64,13 @@ Transmitter::Transmitter(const string& _host, const Connection::Port& _port)
 #endif // DEBUG
 }
 
 #endif // DEBUG
 }
 
-/// \todo debría dar una excepción (?)
-void Transmitter::real_run(void) {
+void Transmitter::real_run(void) throw() {
 #ifdef DEBUG
        cerr << __FILE__ << "(" << __LINE__ << ")"
                << ": real_run()." << endl;
 #endif // DEBUG
        // No hace nada, porque solo actua cuando se manda algo con send().
 #ifdef DEBUG
        cerr << __FILE__ << "(" << __LINE__ << ")"
                << ": real_run()." << endl;
 #endif // DEBUG
        // No hace nada, porque solo actua cuando se manda algo con send().
-       while (!stop) {
+       while (!stop()) {
                Glib::usleep(500000); // 1/2 segundo
        }
 }
                Glib::usleep(500000); // 1/2 segundo
        }
 }
@@ -82,14 +81,14 @@ void Transmitter::send(const string& data) {
                << ": send()." << endl;
 //             << ": send(data = " << data << ")." << endl;
 #endif // DEBUG
                << ": send()." << endl;
 //             << ": send(data = " << data << ")." << endl;
 #endif // DEBUG
-       if (stop) {
+       if (stop()) {
                return;
        }
        try {
                socket << data << flush;
        } catch (const sockerr& e) {
                return;
        }
        try {
                socket << data << flush;
        } catch (const sockerr& e) {
-               error(e.serrno(), e.errstr());
-               stop = true;
+               signal_error().emit(e.serrno(), e.errstr());
+               stop(true);
        }
 }
 
        }
 }