aboutsummaryrefslogtreecommitdiff
path: root/src/InstanceManager.hpp
diff options
context:
space:
mode:
authorAkshay Nair <phenax5@gmail.com>2025-07-23 23:40:48 +0530
committerAkshay Nair <phenax5@gmail.com>2025-07-24 21:46:11 +0530
commit43f3261635e1667367cfd31a2f746832e94c3957 (patch)
treea68d385c1bee08e8527e2d0c44d69ab14010a4c0 /src/InstanceManager.hpp
parentf18749fc37ef0d5bfb6bf240740a401cce372d0c (diff)
downloadnull-browser-43f3261635e1667367cfd31a2f746832e94c3957.tar.gz
null-browser-43f3261635e1667367cfd31a2f746832e94c3957.zip
Refactor main into App class
Diffstat (limited to '')
-rw-r--r--src/InstanceManager.hpp36
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");
+ }
+};