finished server but not tested
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user