Files
flippr-code/FlippR-Driver/networking/input/InputSocketHandler.cpp
Johannes Wendel a15e7b0d09 adf
2019-10-30 22:26:25 +01:00

59 lines
1.0 KiB
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();
auto size = str.size();
str = std::to_string(size) + std::to_string(0x02) + str;
this->socket().sendBytes(str.c_str(), str.size());
}
}
void InputSocketHandler::handle(Event &event)
{
this->queue.push(event);
}
}
}
}