src/plugins/ctf/common: restructure subtree
[babeltrace.git] / src / plugins / ctf / lttng-live / metadata.cpp
index d49ce76fc143a0889640798d9f1405412d7c6847..46a1151185f4fbff9437b55d49c0daf130a2ae77 100644 (file)
@@ -6,22 +6,24 @@
  * Copyright 2010-2011 EfficiOS Inc. and Linux Foundation
  */
 
+#include <glib.h>
+#include <stdint.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+#include <babeltrace2/babeltrace.h>
+
 #define BT_COMP_LOG_SELF_COMP self_comp
 #define BT_LOG_OUTPUT_LEVEL   log_level
 #define BT_LOG_TAG            "PLUGIN/SRC.CTF.LTTNG-LIVE/META"
 #include "logging/comp-logging.h"
 
-#include <stdio.h>
-#include <stdint.h>
-#include <stdlib.h>
-#include <stdbool.h>
-#include <glib.h>
 #include "compat/memstream.h"
-#include <babeltrace2/babeltrace.h>
 
+#include "../common/src/metadata/tsdl/ctf-meta-configure-ir-trace.hpp"
+#include "../common/src/metadata/tsdl/decoder.hpp"
+#include "lttng-live.hpp"
 #include "metadata.hpp"
-#include "../common/metadata/decoder.hpp"
-#include "../common/metadata/ctf-meta-configure-ir-trace.hpp"
 
 #define TSDL_MAGIC 0x75d11d57
 
@@ -94,7 +96,6 @@ end:
     return cc;
 }
 
-BT_HIDDEN
 enum lttng_live_iterator_status lttng_live_metadata_update(struct lttng_live_trace *trace)
 {
     struct lttng_live_session *session = trace->session;
@@ -114,7 +115,14 @@ enum lttng_live_iterator_status lttng_live_metadata_update(struct lttng_live_tra
 
     /* No metadata stream yet. */
     if (!metadata) {
-        if (session->new_streams_needed) {
+        if (session->closed) {
+            /*
+             * The session is closed AND we never received any
+             * metadata this indicates that we will never receive
+             * any metadata.
+             */
+            status = LTTNG_LIVE_ITERATOR_STATUS_END;
+        } else if (session->new_streams_needed) {
             status = LTTNG_LIVE_ITERATOR_STATUS_AGAIN;
         } else {
             session->new_streams_needed = true;
@@ -205,7 +213,7 @@ enum lttng_live_iterator_status lttng_live_metadata_update(struct lttng_live_tra
             goto end;
         }
 
-        /* The relay sent zero bytes of metdata. */
+        /* The relay sent zero bytes of metadata. */
         trace->metadata_stream_state = LTTNG_LIVE_METADATA_STREAM_STATE_NOT_NEEDED;
         goto end;
     }
@@ -256,7 +264,7 @@ enum lttng_live_iterator_status lttng_live_metadata_update(struct lttng_live_tra
             trace->clock_class = borrow_any_clock_class(trace->trace_class);
         }
 
-        /* The metadata was updated succesfully. */
+        /* The metadata was updated successfully. */
         trace->metadata_stream_state = LTTNG_LIVE_METADATA_STREAM_STATE_NOT_NEEDED;
 
         break;
@@ -281,9 +289,8 @@ end:
     return status;
 }
 
-BT_HIDDEN
 int lttng_live_metadata_create_stream(struct lttng_live_session *session, uint64_t ctf_trace_id,
-                                      uint64_t stream_id, const char *trace_name)
+                                      uint64_t stream_id)
 {
     bt_self_component *self_comp = session->self_comp;
     bt_logging_level log_level = session->log_level;
@@ -324,7 +331,6 @@ error:
     return -1;
 }
 
-BT_HIDDEN
 void lttng_live_metadata_fini(struct lttng_live_trace *trace)
 {
     struct lttng_live_metadata *metadata = trace->metadata;
This page took 0.025684 seconds and 4 git commands to generate.