From 43f3261635e1667367cfd31a2f746832e94c3957 Mon Sep 17 00:00:00 2001 From: Akshay Nair Date: Wed, 23 Jul 2025 23:40:48 +0530 Subject: Refactor main into App class --- src/InstanceManager.hpp | 36 ++++++++++++++++++++++++++++++++---- 1 file changed, 32 insertions(+), 4 deletions(-) (limited to 'src/InstanceManager.hpp') diff --git a/src/InstanceManager.hpp b/src/InstanceManager.hpp index 0ef6e08..47d4932 100644 --- a/src/InstanceManager.hpp +++ b/src/InstanceManager.hpp @@ -6,15 +6,21 @@ #include "utils.hpp" +class ServerMsg { +public: + virtual void write_to_socket(QIODevice *socket) = 0; +}; + class InstanceManager : public QObject { Q_OBJECT public: - InstanceManager(); + InstanceManager() = default; ~InstanceManager() override; - void write_open_urls_to_socket(const QStringList &urls); - void write_lua_expr_to_socket(const QString &lua_expr); - void send_message(); + + void initialize(); + void write_message(ServerMsg &msg); + void close(); DEFINE_GETTER(is_server, is_server_mode) @@ -37,3 +43,25 @@ private: // TODO: On windows, \\.\pipe\null-browser const char *socket_path = "/tmp/null-browser-socket.sock"; }; + +class LuaExprServerMsg : public ServerMsg { +public: + const QString &expr; + LuaExprServerMsg(auto expr) : expr(expr) {} + + void write_to_socket(QIODevice *socket) override { + socket->write(("lua " + expr).toStdString().c_str()); + socket->write("\n"); + } +}; + +class UrlServerMsg : public ServerMsg { +public: + const QStringList &urls; + UrlServerMsg(auto urls) : urls(urls) {} + + void write_to_socket(QIODevice *socket) override { + socket->write(urls.join(" ").toStdString().c_str()); + socket->write("\n"); + } +}; -- cgit v1.3.1