doc/api/libbabeltrace2/DoxygenLayout.xml: use `topics` tab
[babeltrace.git] / src / plugins / ctf / lttng-live / viewer-connection.hpp
index 59316371066eec9a5fc327d13419e598b42c710e..0f284581e1de33328f631544906d4c89be823adc 100644 (file)
@@ -7,14 +7,17 @@
 #ifndef LTTNG_LIVE_VIEWER_CONNECTION_H
 #define LTTNG_LIVE_VIEWER_CONNECTION_H
 
+#include <string>
+
 #include <glib.h>
 #include <stdint.h>
-#include <stdio.h>
 
 #include <babeltrace2/babeltrace.h>
 
-#include "common/macros.h"
-#include "compat/socket.h"
+#include "compat/socket.hpp"
+#include "cpp-common/bt2/value.hpp"
+#include "cpp-common/bt2c/glib-up.hpp"
+#include "cpp-common/bt2c/logging.hpp"
 
 #define LTTNG_DEFAULT_NETWORK_VIEWER_PORT 5344
 
@@ -46,29 +49,34 @@ enum lttng_live_get_one_metadata_status
     LTTNG_LIVE_GET_ONE_METADATA_STATUS_CLOSED = -3,
 };
 
-struct lttng_live_component;
-
 struct live_viewer_connection
 {
-    bt_logging_level log_level;
-    bt_self_component *self_comp;
-    bt_self_component_class *self_comp_class;
+    using UP = std::unique_ptr<live_viewer_connection>;
+
+    explicit live_viewer_connection(const bt2c::Logger& parentLogger) :
+        logger {parentLogger, "PLUGIN/SRC.CTF.LTTNG-LIVE/VIEWER"}
+    {
+    }
 
-    GString *url;
+    ~live_viewer_connection();
 
-    GString *relay_hostname;
-    GString *target_hostname;
-    GString *session_name;
-    GString *proto;
+    bt2c::Logger logger;
 
-    BT_SOCKET control_sock;
-    int port;
+    std::string url;
 
-    int32_t major;
-    int32_t minor;
+    bt2c::GStringUP relay_hostname;
+    bt2c::GStringUP target_hostname;
+    bt2c::GStringUP session_name;
+    bt2c::GStringUP proto;
 
-    bool in_query;
-    struct lttng_live_msg_iter *lttng_live_msg_iter;
+    BT_SOCKET control_sock {};
+    int port = 0;
+
+    int32_t major = 0;
+    int32_t minor = 0;
+
+    bool in_query = false;
+    struct lttng_live_msg_iter *lttng_live_msg_iter = nullptr;
 };
 
 struct packet_index_time
@@ -93,19 +101,14 @@ struct packet_index
 };
 
 enum lttng_live_viewer_status
-live_viewer_connection_create(bt_self_component *self_comp,
-                              bt_self_component_class *self_comp_class, bt_logging_level log_level,
-                              const char *url, bool in_query,
+live_viewer_connection_create(const char *url, bool in_query,
                               struct lttng_live_msg_iter *lttng_live_msg_iter,
-                              struct live_viewer_connection **viewer_connection);
-
-void live_viewer_connection_destroy(struct live_viewer_connection *conn);
+                              const bt2c::Logger& parentLogger, live_viewer_connection::UP& viewer);
 
 enum lttng_live_viewer_status
 lttng_live_create_viewer_session(struct lttng_live_msg_iter *lttng_live_msg_iter);
 
-bt_component_class_query_method_status
-live_viewer_connection_list_sessions(struct live_viewer_connection *viewer_connection,
-                                     const bt_value **user_result);
+bt2::Value::Shared
+live_viewer_connection_list_sessions(struct live_viewer_connection *viewer_connection);
 
 #endif /* LTTNG_LIVE_VIEWER_CONNECTION_H */
This page took 0.024317 seconds and 4 git commands to generate.