//
// Created by johannes on 15.06.19.
//

#ifndef FLIPPR_DRIVER_INPUTSOCKETHANDLERFACTORY_H
#define FLIPPR_DRIVER_INPUTSOCKETHANDLERFACTORY_H

#include <Poco/Net/TCPServerConnectionFactory.h>
#include <input/InputDriver.h>

namespace flippR_driver
{
namespace networking
{
namespace input
{

class InputSocketHandlerFactory : public Poco::Net::TCPServerConnectionFactory
{
public:
  explicit InputSocketHandlerFactory(std::shared_ptr<flippR_driver::input::InputDriver> inputDriver);

  Poco::Net::TCPServerConnection* createConnection(const Poco::Net::StreamSocket &socket) override;

private:
  std::shared_ptr<flippR_driver::input::InputDriver> input_driver;
};

}
}
}

#endif //FLIPPR_DRIVER_INPUTSOCKETHANDLERFACTORY_H
