59 lines
1.0 KiB
C++
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);
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
}
|