summaryrefslogtreecommitdiff
path: root/src/discord/websocket.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/discord/websocket.hpp')
-rw-r--r--src/discord/websocket.hpp14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/discord/websocket.hpp b/src/discord/websocket.hpp
index ca7dcc6..a77bf55 100644
--- a/src/discord/websocket.hpp
+++ b/src/discord/websocket.hpp
@@ -3,12 +3,14 @@
#include <ixwebsocket/IXWebSocket.h>
#include <string>
#include <functional>
+#include <glibmm.h>
#include <nlohmann/json.hpp>
#include <sigc++/sigc++.h>
+#include <spdlog/spdlog.h>
class Websocket {
public:
- Websocket();
+ Websocket(const std::string &id);
void StartConnection(const std::string &url);
void SetUserAgent(std::string agent);
@@ -24,12 +26,12 @@ public:
private:
void OnMessage(const ix::WebSocketMessagePtr &msg);
- ix::WebSocket m_websocket;
+ std::unique_ptr<ix::WebSocket> m_websocket;
std::string m_agent;
public:
using type_signal_open = sigc::signal<void>;
- using type_signal_close = sigc::signal<void, uint16_t>;
+ using type_signal_close = sigc::signal<void, ix::WebSocketCloseInfo>;
using type_signal_message = sigc::signal<void, std::string>;
type_signal_open signal_open();
@@ -42,4 +44,10 @@ private:
type_signal_message m_signal_message;
bool m_print_messages = true;
+
+ Glib::Dispatcher m_open_dispatcher;
+ Glib::Dispatcher m_close_dispatcher;
+ ix::WebSocketCloseInfo m_close_info;
+
+ std::shared_ptr<spdlog::logger> m_log;
};