Cleanup: src.ctf.lttng-live: rename live_iterator_status printing function
[babeltrace.git] / src / plugins / ctf / lttng-live / lttng-live.c
index e236655815a5d68f7b9854bc2b052075a06761a6..bd2023d23f6c5816e6fc0863afa39969ce8419e7 100644 (file)
@@ -62,7 +62,8 @@
 #define print_dbg(fmt, ...)    BT_COMP_LOGD(fmt, ## __VA_ARGS__)
 
 static
-const char *print_live_iterator_status(enum lttng_live_iterator_status status)
+const char *lttng_live_iterator_status_string(
+               enum lttng_live_iterator_status status)
 {
        switch (status) {
        case LTTNG_LIVE_ITERATOR_STATUS_CONTINUE:
@@ -1026,7 +1027,7 @@ enum lttng_live_iterator_status next_stream_iterator_for_trace(
                                lttng_live_msg_iter, stream_iter, &msg);
 
                        BT_COMP_LOGD("live stream iterator returned status :%s",
-                               print_live_iterator_status(stream_iter_status));
+                               lttng_live_iterator_status_string(stream_iter_status));
                        if (stream_iter_status == LTTNG_LIVE_ITERATOR_STATUS_END) {
                                stream_iter_is_ended = true;
                                break;
@@ -1488,11 +1489,20 @@ return_status:
                status = BT_COMPONENT_CLASS_MESSAGE_ITERATOR_NEXT_METHOD_STATUS_END;
                break;
        case LTTNG_LIVE_ITERATOR_STATUS_NOMEM:
+               BT_COMP_LOGE_APPEND_CAUSE(self_comp,
+                       "Memory error preparing the next batch of messages: "
+                       "live-iter-status=%s",
+                       lttng_live_iterator_status_string(stream_iter_status));
                status = BT_COMPONENT_CLASS_MESSAGE_ITERATOR_NEXT_METHOD_STATUS_MEMORY_ERROR;
                break;
        case LTTNG_LIVE_ITERATOR_STATUS_ERROR:
        case LTTNG_LIVE_ITERATOR_STATUS_INVAL:
        case LTTNG_LIVE_ITERATOR_STATUS_UNSUPPORTED:
+               BT_COMP_LOGE_APPEND_CAUSE(self_comp,
+                       "Error preparing the next batch of messages: "
+                       "live-iter-status=%s",
+                       lttng_live_iterator_status_string(stream_iter_status));
+
                status = BT_COMPONENT_CLASS_MESSAGE_ITERATOR_NEXT_METHOD_STATUS_ERROR;
                /* Put all existing messages on error. */
                put_messages(msgs, *count);
@@ -1505,6 +1515,40 @@ end:
        return status;
 }
 
+static
+struct lttng_live_msg_iter *lttng_live_msg_iter_create(
+               struct lttng_live_component *lttng_live_comp,
+               bt_self_message_iterator *self_msg_it)
+{
+       bt_self_component *self_comp = lttng_live_comp->self_comp;
+       bt_logging_level log_level = lttng_live_comp->log_level;
+
+       struct lttng_live_msg_iter *lttng_live_msg_iter =
+               g_new0(struct lttng_live_msg_iter, 1);
+       if (!lttng_live_msg_iter) {
+               BT_COMP_LOGE_APPEND_CAUSE(self_comp,
+                       "Failed to allocate lttng_live_msg_iter");
+               goto end;
+       }
+
+       lttng_live_msg_iter->log_level = lttng_live_comp->log_level;
+       lttng_live_msg_iter->self_comp = lttng_live_comp->self_comp;
+       lttng_live_msg_iter->lttng_live_comp = lttng_live_comp;
+       lttng_live_msg_iter->self_msg_iter = self_msg_it;
+
+       lttng_live_msg_iter->active_stream_iter = 0;
+       lttng_live_msg_iter->last_msg_ts_ns = INT64_MIN;
+       lttng_live_msg_iter->was_interrupted = false;
+
+       lttng_live_msg_iter->sessions = g_ptr_array_new_with_free_func(
+               (GDestroyNotify) lttng_live_destroy_session);
+       BT_ASSERT(lttng_live_msg_iter->sessions);
+
+end:
+       return lttng_live_msg_iter;
+
+}
+
 BT_HIDDEN
 bt_component_class_message_iterator_initialize_method_status lttng_live_msg_iter_init(
                bt_self_message_iterator *self_msg_it,
@@ -1526,31 +1570,20 @@ bt_component_class_message_iterator_initialize_method_status lttng_live_msg_iter
        log_level = lttng_live->log_level;
        self_comp = lttng_live->self_comp;
 
+
        /* There can be only one downstream iterator at the same time. */
        BT_ASSERT(!lttng_live->has_msg_iter);
        lttng_live->has_msg_iter = true;
 
-       lttng_live_msg_iter = g_new0(struct lttng_live_msg_iter, 1);
+       lttng_live_msg_iter = lttng_live_msg_iter_create(lttng_live,
+               self_msg_it);
        if (!lttng_live_msg_iter) {
                status = BT_COMPONENT_CLASS_MESSAGE_ITERATOR_INITIALIZE_METHOD_STATUS_MEMORY_ERROR;
                BT_COMP_LOGE_APPEND_CAUSE(self_comp,
-                       "Failed to allocate lttng_live_msg_iter");
-               goto end;
+                       "Failed to create lttng_live_msg_iter");
+               goto error;
        }
 
-       lttng_live_msg_iter->log_level = lttng_live->log_level;
-       lttng_live_msg_iter->self_comp = lttng_live->self_comp;
-       lttng_live_msg_iter->lttng_live_comp = lttng_live;
-       lttng_live_msg_iter->self_msg_iter = self_msg_it;
-
-       lttng_live_msg_iter->active_stream_iter = 0;
-       lttng_live_msg_iter->last_msg_ts_ns = INT64_MIN;
-       lttng_live_msg_iter->was_interrupted = false;
-
-       lttng_live_msg_iter->sessions = g_ptr_array_new_with_free_func(
-               (GDestroyNotify) lttng_live_destroy_session);
-       BT_ASSERT(lttng_live_msg_iter->sessions);
-
         viewer_status = live_viewer_connection_create(self_comp, NULL,
                log_level, lttng_live->params.url->str, false,
                lttng_live_msg_iter, &lttng_live_msg_iter->viewer_connection);
This page took 0.02539 seconds and 4 git commands to generate.