//
#include "controlserver.h"
+#include <cstring>
+#include <sstream>
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;
+ }
+}