Files
flippr-code/FlippR-Driver/networking/input/SocketHandler.cpp
Jonas Zeunert b28e067c7b cli nearly don
2019-06-13 14:33:19 +02:00

58 lines
966 B
C++

/*
* SocketConnection.cpp
*
* Created on: Jun 13, 2018
* Author: Andreas Schneider, Johannes Wendel, Jonas Zeunert
*/
#include "SocketHandler.h"
using Poco::Net::StreamSocket;
using Poco::Net::TCPServerConnection;
using flippR_driver::input::InputDriver;
using flippR_driver::input::EventHandler;
using flippR_driver::input::Event;
namespace flippR_driver
{
namespace networking
{
namespace input
{
SocketHandler::SocketHandler(StreamSocket streamSocket, std::shared_ptr<InputDriver> inputDriver) :
TCPServerConnection(streamSocket),
EventHandler(inputDriver)
{
}
void SocketHandler::run()
{
StreamSocket& streamSocket = socket(); // todo ?
while(true)
{
Event event = this->queue->pop();
if(event.name == "END")
{
return;
}
std::string str = event.getJsonString();
streamSocket.sendBytes(str.c_str(), str.length());
}
}
void SocketHandler::handle(Event &event)
{
this->queue->push(event);
}
}
}
}