]> git.llucax.com Git - z.facultad/75.42/plaqui.git/blobdiff - Server/src/controlserver.cpp
- Muchas pequeñas correcciones.
[z.facultad/75.42/plaqui.git] / Server / src / controlserver.cpp
index c9007c55dfb5ba642016735ce8adc93ce0e4b81b..4b888493b2264666c733dc3dfc7bdf8242ec18e5 100644 (file)
 //
 
 #include "controlserver.h"
 //
 
 #include "controlserver.h"
+#include <cstring>
+#include <sstream>
 
 using namespace Plaqui;
 
 
 using namespace Plaqui;
 
-//ControlServer::ControlServer(const iosockinet& socket) {
-//}
+ControlServer::ControlServer(const sockbuf::sockdesc& sd):
+               Connection(sd) {
+#ifdef DEBUG
+       std::cerr << __FILE__ << ": sd = " << sd.sock << std::endl;
+#endif // DEBUG
+}
+
+void ControlServer::real_run(void) {
+       // FIXME se tiene que ir a la clase para poder frenarlo desde afuera.
+       bool stop = false;
+       char buf[BUFFER_SIZE];
+       while (!stop) {
+               stringstream sstr;
+               while (!stop && socket.getline(buf, BUFFER_SIZE)) {
+#ifdef DEBUG
+                       std::cerr << "Reciviendo: " << buf << std::endl;
+#endif // DEBUG
+                       // Si tiene contenido, lo almaceno en el buffer de comandos.
+                       if (strlen(buf)) {
+                               sstr << buf << endl;
+                       // Si viene la línea vacía, terminan las cabeceras HTTP.
+                       } else {
+                               stop = true;
+                       }
+               }
+               // Manda mensaje a la planta.
+               //dispatch_command(parse_command(sstr.str()));
+#ifdef DEBUG
+                       std::cerr << "Recivido:" << std::endl << sstr.str() << std::endl;
+#endif // DEBUG
+               // FIXME - hacer respuesta XML.
+               socket << "Ok!" << std::endl;
+       }
+}