]> git.llucax.com Git - z.facultad/75.42/plaqui.git/commitdiff
El ControlClient ya puede recibir "frames" con el estado de la planta! :-D
authorLeandro Lucarella <llucax@gmail.com>
Tue, 18 Nov 2003 18:27:35 +0000 (18:27 +0000)
committerLeandro Lucarella <llucax@gmail.com>
Tue, 18 Nov 2003 18:27:35 +0000 (18:27 +0000)
Esta hecho un poco a las patadas, pero asi puedo laburar un poco mas tranquilo
sabiendo que no trabo el avance del cliente grafico.
El Receiver se levanta cuando se crea el ControlClient, asi que todo lo que hay
que hacer es mandar un comando /transmission/start/default/localhost/7528 para
que empiece a transmitirnos el server (bueno, localhost si corre local).
Se actualiza el ejemplo para tener de referencia (igual todo lo que hay que
hacer es atender la signal_frame_received(const std::string& frame) que entrega
el XML del frame recibido).

Server/include/plaqui/server/controlclient.h
Server/src/controlclient.cpp
Server/tests/client_test.cpp

index 669fba4593d8b4110fb470ec51bc23d10f0496d7..f2252401890ae6183915053bde6af11d2f0e4628 100644 (file)
@@ -30,6 +30,7 @@
 
 #include "plaqui/server/command.h"
 #include "plaqui/server/connection.h"
+#include "plaqui/server/receiver.h" // TODO TEMPRORAL
 #include <string>
 
 namespace PlaQui {
@@ -65,6 +66,9 @@ namespace Server {
                        /// Señal para indicar que se recibió un error.
                        SignalErrorReceived error_received;
 
+                       /// Receptor del estado de la planta TODO Temporal.
+                       Receiver receiver;
+
                // Métodos.
 
                private:
@@ -113,6 +117,11 @@ namespace Server {
                         */
                        SignalErrorReceived& signal_error_received(void);
 
+                       /**
+                        * Obtiene la señal que avisa cuando se recibió un cuadro.
+                        */
+                       Receiver::SignalFrameReceived& signal_frame_received(void);
+
        };
 
 }
index 511def5841838757924cf4c225cec5361bbac97c..48ef3283427c74f99c7046df90328e1a54c6e108 100644 (file)
@@ -41,6 +41,8 @@ ControlClient::~ControlClient(void) {
 #ifdef DEBUG
        cerr << __FILE__ << ": destructor." << endl;
 #endif // DEBUG
+       // TODO Temporal: espero que el receiver muera.
+       receiver.finish(true);
 }
 
 ControlClient::ControlClient(const string& host, const Connection::Port& port):
@@ -65,8 +67,10 @@ void ControlClient::real_run(void) {
        }
        host = socket->localhost();
        port = socket->localport();
-       // TODO sacar a la mierda?
+       // TODO sacar signal_connected?
        connected();
+       // TODO Temporal: el receiver empieza a escuchar.
+       receiver.run();
        while (!stop) {
                HTTPResponse response;
                try {
@@ -115,6 +119,11 @@ ControlClient::SignalErrorReceived& ControlClient::signal_error_received(void) {
        return error_received;
 }
 
+// TODO - temporal
+Receiver::SignalFrameReceived& ControlClient::signal_frame_received(void) {
+       return receiver.signal_frame_received();
+}
+
 } // namespace Server
 
 } // namespace PlaQui
index 0ab975bac78fc414ec93298ae1cb679c6c4fbd18..c5fc75f556f9c80d36eea4081eddf7716675eba7 100644 (file)
@@ -50,6 +50,11 @@ void on_ok_received(const string& body) {
        cout << "       Body: " << body << endl;
 }
 
+void on_frame_received(const string& frame) {
+       cout << "   Frame recibido! :-D" << endl;
+       cout << frame << endl;
+}
+
 void on_error_received(unsigned code) {
        cout << "   Respuesta recibida: Error nro " << code << "! :-(" << endl;
 }
@@ -88,6 +93,7 @@ int main(int argc, char* argv[]) {
                client->signal_connected().connect(SigC::slot(on_connected));
                client->signal_ok_received().connect(SigC::slot(on_ok_received));
                client->signal_error_received().connect(SigC::slot(on_error_received));
+               client->signal_frame_received().connect(SigC::slot(on_frame_received));
                client->run();
                char buf[BUFSIZ];
                while (cin.getline(buf, BUFSIZ)) {