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 "FlippRServer.h"
#include "output/OutputRequestHandlerFactory.h" #include "output/OutputRequestHandlerFactory.h"
#include "input/InputSocketHandlerFactory.h"
#include "DriverFactory.h" #include "DriverFactory.h"
#include <Poco/Net/SocketAddress.h> #include <Poco/Net/SocketAddress.h>
@@ -77,13 +78,43 @@ void FlippRServer::initialize(Application &self)
this->initialize_output_driver(); this->initialize_output_driver();
//Todo initialize input server this->initialize_input_driver();
//https://gist.github.com/NIPE-SYSTEMS/5a06428c0880ed7ff3cc4304be436e3e //https://gist.github.com/NIPE-SYSTEMS/5a06428c0880ed7ff3cc4304be436e3e
ServerApplication::initialize(self); ServerApplication::initialize(self);
} }
void FlippRServer::initialize_output_driver() 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 input_config_stream;
std::ifstream matrix_config_stream; std::ifstream matrix_config_stream;
@@ -99,7 +130,8 @@ void FlippRServer::initialize_output_driver()
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
//todo linking errors
//todo linking errors
this->input_driver = flippR_driver::get_InputDriver(input_config_stream, matrix_config_stream); 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"); SocketAddress address("/tmp/flippR_driver/S.flippR_driver");
ServerSocket server_socket(address); ServerSocket server_socket(address);
return new TCPServer(new input::InputSocketHandlerFactory(this->input_driver), port);
} }

View File

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

View File

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