Files
flippr-code/FlippR-Driver/networking/input/InputSocketHandler.cpp

56 lines
941 B
C++

/*
* SocketConnection.cpp
*
* Created on: Jun 13, 2018
* Author: Andreas Schneider, Johannes Wendel, Jonas Zeunert
*/
#include "InputSocketHandler.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
{
InputSocketHandler::InputSocketHandler(StreamSocket streamSocket, std::shared_ptr<InputDriver> inputDriver) :
TCPServerConnection(streamSocket),
EventHandler(inputDriver)
{
}
void InputSocketHandler::run()
{
while(true)
{
Event event = this->queue->pop();
if(event.name == "END")
{
return;
}
std::string str = event.getJsonString();
this->socket().sendBytes(str.c_str(), str.length());
}
}
void InputSocketHandler::handle(Event &event)
{
this->queue->push(event);
}
}
}
}