This repository has been archived on 2018-05-28. You can view files and clone it, but cannot push or open issues or pull requests.
BBB-Simple-ACS/client/factory.hpp

111 lines
1.9 KiB
C++

#pragma once
#include "devices.hpp"
#include "card_reader.hpp"
#include "oled_writer.hpp"
#include "state.hpp"
#include "loop.hpp"
#include "reader_timer.hpp"
#include "await_timer.hpp"
#include "mysql_conn.hpp"
#include "qr_encoder.hpp"
#include "request_delegate.hpp"
#include "access_controller.hpp"
#include "request_timer.hpp"
namespace acs
{
class factory
{
devices devices_;
loop loop_;
card_reader reader_;
oled_writer writer_;
state state_;
reader_timer reader_timer_;
await_timer await_timer_;
mysql_conn mysql_conn_;
qr_encoder qr_encoder_;
request_delegate request_delegate_;
access_controller access_controller_;
request_timer request_timer_;
static factory singleton_;
explicit factory() = default;
public:
static factory* get()
{
return &singleton_;
}
devices* get_devices()
{
return &devices_;
}
loop* get_loop()
{
return &loop_;
}
card_reader* get_reader()
{
return &reader_;
}
oled_writer* get_writer()
{
return &writer_;
}
state* get_state()
{
return &state_;
}
reader_timer* get_reader_timer()
{
return &reader_timer_;
}
await_timer* get_await_timer()
{
return &await_timer_;
}
mysql_conn* get_mysql()
{
return &mysql_conn_;
}
qr_encoder* get_qr_encoder()
{
return &qr_encoder_;
}
request_delegate* get_request_delegate()
{
return &request_delegate_;
}
access_controller* get_controller()
{
return &access_controller_;
}
};
}