From 00dc057ea5d9244f1df9457a316fd193c54dbfb0 Mon Sep 17 00:00:00 2001 From: Joel Klinghed Date: Tue, 21 Oct 2025 23:14:25 +0200 Subject: main: Split out main api/server part from main Add fake-api, sharing api/server implementation with main but fakes bluetooth events, to simplify working on the UI. --- src/server.hh | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 src/server.hh (limited to 'src/server.hh') diff --git a/src/server.hh b/src/server.hh new file mode 100644 index 0000000..0601ba8 --- /dev/null +++ b/src/server.hh @@ -0,0 +1,50 @@ +#ifndef SERVER_HH +#define SERVER_HH + +#include "bt.hh" +#include "cfg.hh" +#include "http.hh" +#include "logger.hh" +#include "looper.hh" + +#include +#include + +namespace server { + +class Api : public bt::Manager::Delegate { + public: + virtual ~Api() = default; + + [[nodiscard]] + virtual bt::Adapter* adapter() const = 0; + + protected: + Api() = default; +}; + +class Signaler { + public: + virtual ~Signaler() = default; + + virtual void send(std::string_view signal) = 0; + virtual std::unique_ptr handle( + http::Request const& request) = 0; + + protected: + Signaler() = default; +}; + +std::unique_ptr create_signaler(logger::Logger& logger, + cfg::Config const& cfg, + looper::Looper& looper); + +std::unique_ptr create_bt_delegate(logger::Logger& logger, + Signaler& signaler); + +std::unique_ptr create_http_delegate( + Api& api, Signaler& signaler); + +} // namespace server + +#endif // SERVER_HH -- cgit v1.2.3-70-g09d2