finished server but not tested

This commit is contained in:
Johannes Wendel
2019-06-15 15:14:58 +02:00
parent 7146f67169
commit 44432bec85
3 changed files with 37 additions and 4 deletions

View File

@@ -4,6 +4,7 @@
#include "FlippRServer.h"
#include "output/OutputRequestHandlerFactory.h"
#include "input/InputSocketHandlerFactory.h"
#include "DriverFactory.h"
#include <Poco/Net/SocketAddress.h>
@@ -77,13 +78,43 @@ void FlippRServer::initialize(Application &self)
this->initialize_output_driver();
//Todo initialize input server
this->initialize_input_driver();
//https://gist.github.com/NIPE-SYSTEMS/5a06428c0880ed7ff3cc4304be436e3e
ServerApplication::initialize(self);
}
void FlippRServer::initialize_output_driver()
{
std::ifstream output_pin_config_stream;
std::ifstream lamp_config_stream;
std::ifstream solenoid_config_stream;
std::ifstream sound_config_stream;
std::ifstream display_config_stream;
try
{
output_pin_config_stream.open(this->output_pin_config);
lamp_config_stream.open(this->lamp_config);
solenoid_config_stream.open(this->solenoid_config);
sound_config_stream.open(this->sound_config);
display_config_stream.open(this->display_config);
}
catch(const std::exception& e)
{
logger().error(e.what());
exit(EXIT_FAILURE);
}
//todo linking errors
this->output_driver = flippR_driver::get_OutputDriver(output_pin_config_stream,
lamp_config_stream,
solenoid_config_stream,
sound_config_stream,
display_config_stream);
}
void FlippRServer::initialize_input_driver()
{
std::ifstream input_config_stream;
std::ifstream matrix_config_stream;
@@ -99,7 +130,8 @@ void FlippRServer::initialize_output_driver()
exit(EXIT_FAILURE);
}
//todo linking errors
//todo linking errors
this->input_driver = flippR_driver::get_InputDriver(input_config_stream, matrix_config_stream);
}
@@ -140,7 +172,7 @@ TCPServer* FlippRServer::build_input_server()
SocketAddress address("/tmp/flippR_driver/S.flippR_driver");
ServerSocket server_socket(address);
return new TCPServer(new input::InputSocketHandlerFactory(this->input_driver), port);
}

View File

@@ -34,6 +34,7 @@ public:
private:
void initialize_output_driver();
void initialize_input_driver();
void parse_server_config_file();
Poco::Net::HTTPServer* build_output_server();

View File

@@ -15,7 +15,7 @@ namespace networking
namespace input
{
class InputSocketHandlerFactory : Poco::Net::TCPServerConnectionFactory
class InputSocketHandlerFactory : public Poco::Net::TCPServerConnectionFactory
{
public:
explicit InputSocketHandlerFactory(std::shared_ptr<flippR_driver::input::InputDriver> inputDriver);