diff options
| author | Akshay Nair <phenax5@gmail.com> | 2025-07-23 23:40:48 +0530 |
|---|---|---|
| committer | Akshay Nair <phenax5@gmail.com> | 2025-07-24 21:46:11 +0530 |
| commit | 43f3261635e1667367cfd31a2f746832e94c3957 (patch) | |
| tree | a68d385c1bee08e8527e2d0c44d69ab14010a4c0 /src/InstanceManager.hpp | |
| parent | f18749fc37ef0d5bfb6bf240740a401cce372d0c (diff) | |
| download | null-browser-43f3261635e1667367cfd31a2f746832e94c3957.tar.gz null-browser-43f3261635e1667367cfd31a2f746832e94c3957.zip | |
Refactor main into App class
Diffstat (limited to '')
| -rw-r--r-- | src/InstanceManager.hpp | 36 |
1 files changed, 32 insertions, 4 deletions
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"); + } +}; |
