src.ctf.fs: make ctf_msg_iter_create return a unique_ptr
[babeltrace.git] / src / plugins / ctf / common / src / msg-iter / msg-iter.hpp
index dea4615d65f40cb9c8539831bdf25d2cc0ab3e02..f9bb7f2aa01761a932d2c8a08f8f1b49b5131b0d 100644 (file)
 
 #include "../metadata/tsdl/ctf-meta.hpp"
 
+namespace bt2c {
+
+class Logger;
+
+} /* namespace bt2c */
+
 /**
  * @file ctf-msg-iter.h
  *
@@ -56,6 +62,28 @@ enum ctf_msg_iter_medium_status
     CTF_MSG_ITER_MEDIUM_STATUS_OK = 0,
 };
 
+inline const char *format_as(const ctf_msg_iter_medium_status status) noexcept
+{
+    switch (status) {
+    case CTF_MSG_ITER_MEDIUM_STATUS_EOF:
+        return "EOF";
+
+    case CTF_MSG_ITER_MEDIUM_STATUS_AGAIN:
+        return "AGAIN";
+
+    case CTF_MSG_ITER_MEDIUM_STATUS_ERROR:
+        return "ERROR";
+
+    case CTF_MSG_ITER_MEDIUM_STATUS_MEMORY_ERROR:
+        return "MEMORY_ERROR";
+
+    case CTF_MSG_ITER_MEDIUM_STATUS_OK:
+        return "OK";
+    }
+
+    bt_common_abort();
+}
+
 /**
  * CTF message iterator API status code.
  */
@@ -90,6 +118,28 @@ enum ctf_msg_iter_status
     CTF_MSG_ITER_STATUS_OK = CTF_MSG_ITER_MEDIUM_STATUS_OK,
 };
 
+inline const char *format_as(ctf_msg_iter_status status) noexcept
+{
+    switch (status) {
+    case CTF_MSG_ITER_STATUS_EOF:
+        return "EOF";
+
+    case CTF_MSG_ITER_STATUS_AGAIN:
+        return "AGAIN";
+
+    case CTF_MSG_ITER_STATUS_ERROR:
+        return "ERROR";
+
+    case CTF_MSG_ITER_STATUS_MEMORY_ERROR:
+        return "MEMORY_ERROR";
+
+    case CTF_MSG_ITER_STATUS_OK:
+        return "OK";
+    }
+
+    bt_common_abort();
+}
+
 /**
  * Medium operations.
  *
@@ -206,6 +256,16 @@ struct ctf_msg_iter_medium_ops
     bt_stream *(*borrow_stream)(bt_stream_class *stream_class, int64_t stream_id, void *data);
 };
 
+/** CTF message iterator. */
+struct ctf_msg_iter;
+
+struct ctf_msg_iter_deleter
+{
+    void operator()(ctf_msg_iter *iter) noexcept;
+};
+
+using ctf_msg_iter_up = std::unique_ptr<ctf_msg_iter, ctf_msg_iter_deleter>;
+
 /**
  * Creates a CTF message iterator.
  *
@@ -222,10 +282,10 @@ struct ctf_msg_iter_medium_ops
  * @returns                    New CTF message iterator on
  *                             success, or \c NULL on error
  */
-struct ctf_msg_iter *ctf_msg_iter_create(struct ctf_trace_class *tc, size_t max_request_sz,
-                                         struct ctf_msg_iter_medium_ops medops, void *medops_data,
-                                         bt_logging_level log_level, bt_self_component *self_comp,
-                                         bt_self_message_iterator *self_msg_iter);
+ctf_msg_iter_up ctf_msg_iter_create(struct ctf_trace_class *tc, size_t max_request_sz,
+                                    struct ctf_msg_iter_medium_ops medops, void *medops_data,
+                                    bt_self_message_iterator *self_msg_iter,
+                                    const bt2c::Logger& logger);
 
 /**
  * Destroys a CTF message iterator, freeing all internal resources.
@@ -302,40 +362,4 @@ void ctf_msg_iter_reset_for_next_stream_file(struct ctf_msg_iter *msg_it);
 
 void ctf_msg_iter_set_dry_run(struct ctf_msg_iter *msg_it, bool val);
 
-static inline const char *ctf_msg_iter_medium_status_string(enum ctf_msg_iter_medium_status status)
-{
-    switch (status) {
-    case CTF_MSG_ITER_MEDIUM_STATUS_EOF:
-        return "EOF";
-    case CTF_MSG_ITER_MEDIUM_STATUS_AGAIN:
-        return "AGAIN";
-    case CTF_MSG_ITER_MEDIUM_STATUS_ERROR:
-        return "ERROR";
-    case CTF_MSG_ITER_MEDIUM_STATUS_MEMORY_ERROR:
-        return "MEMORY_ERROR";
-    case CTF_MSG_ITER_MEDIUM_STATUS_OK:
-        return "OK";
-    }
-
-    bt_common_abort();
-}
-
-static inline const char *ctf_msg_iter_status_string(enum ctf_msg_iter_status status)
-{
-    switch (status) {
-    case CTF_MSG_ITER_STATUS_EOF:
-        return "EOF";
-    case CTF_MSG_ITER_STATUS_AGAIN:
-        return "AGAIN";
-    case CTF_MSG_ITER_STATUS_ERROR:
-        return "ERROR";
-    case CTF_MSG_ITER_STATUS_MEMORY_ERROR:
-        return "MEMORY_ERROR";
-    case CTF_MSG_ITER_STATUS_OK:
-        return "OK";
-    }
-
-    bt_common_abort();
-}
-
 #endif /* CTF_MSG_ITER_H */
This page took 0.025532 seconds and 4 git commands to generate.