lib: make message iterator creation functions return a status
[babeltrace.git] / src / plugins / text / details / details.c
index 105a6767179f403e90003eff098c77519040a0d9..582230f0fb3dde3a4083880ed2c9952d70554747 100644 (file)
@@ -23,7 +23,7 @@
 #define BT_COMP_LOG_SELF_COMP (details_comp->self_comp)
 #define BT_LOG_OUTPUT_LEVEL (details_comp->log_level)
 #define BT_LOG_TAG "PLUGIN/SINK.TEXT.DETAILS"
-#include "plugins/comp-logging.h"
+#include "logging/comp-logging.h"
 
 #include <babeltrace2/babeltrace.h>
 
@@ -53,9 +53,6 @@ const char * const with_metadata_param_name = "with-metadata";
 static
 const char * const with_time_param_name = "with-time";
 
-static
-const char * const with_trace_class_name_param_name = "with-trace-class-name";
-
 static
 const char * const with_trace_name_param_name = "with-trace-name";
 
@@ -139,9 +136,11 @@ void destroy_details_comp(struct details_comp *details_comp)
 
                        if (details_tc_meta->tc_destruction_listener_id !=
                                        UINT64_C(-1)) {
-                               bt_trace_class_remove_destruction_listener(
-                                       (const void *) key,
-                                       details_tc_meta->tc_destruction_listener_id);
+                               if (bt_trace_class_remove_destruction_listener(
+                                               (const void *) key,
+                                               details_tc_meta->tc_destruction_listener_id)) {
+                                       bt_current_thread_clear_error();
+                               }
                        }
                }
 
@@ -160,9 +159,11 @@ void destroy_details_comp(struct details_comp *details_comp)
                while (g_hash_table_iter_next(&iter, &key, &value)) {
                        struct details_trace *details_trace = value;
 
-                       bt_trace_remove_destruction_listener(
-                               (const void *) key,
-                               details_trace->trace_destruction_listener_id);
+                       if (bt_trace_remove_destruction_listener(
+                                       (const void *) key,
+                                       details_trace->trace_destruction_listener_id)) {
+                               bt_current_thread_clear_error();
+                       }
                }
 
                g_hash_table_destroy(details_comp->traces);
@@ -318,14 +319,6 @@ int configure_details_comp(struct details_comp *details_comp,
                goto error;
        }
 
-       /* With trace class name? */
-       ret = configure_bool_opt(details_comp, params,
-               with_trace_class_name_param_name,
-               true, &details_comp->cfg.with_trace_class_name);
-       if (ret) {
-               goto error;
-       }
-
        /* With trace name? */
        ret = configure_bool_opt(details_comp, params,
                with_trace_name_param_name,
@@ -377,8 +370,6 @@ void log_configuration(bt_self_component_sink *comp,
        BT_COMP_LOGI("  Compact: %d", details_comp->cfg.compact);
        BT_COMP_LOGI("  With metadata: %d", details_comp->cfg.with_meta);
        BT_COMP_LOGI("  With time: %d", details_comp->cfg.with_time);
-       BT_COMP_LOGI("  With trace class name: %d",
-               details_comp->cfg.with_trace_class_name);
        BT_COMP_LOGI("  With trace name: %d", details_comp->cfg.with_trace_name);
        BT_COMP_LOGI("  With stream class name: %d",
                details_comp->cfg.with_stream_class_name);
@@ -387,22 +378,34 @@ void log_configuration(bt_self_component_sink *comp,
 }
 
 BT_HIDDEN
-bt_self_component_status details_init(bt_self_component_sink *comp,
+bt_component_class_init_method_status details_init(bt_self_component_sink *comp,
                const bt_value *params,
                __attribute__((unused)) void *init_method_data)
 {
-       bt_self_component_status status = BT_SELF_COMPONENT_STATUS_OK;
+       bt_component_class_init_method_status status =
+               BT_COMPONENT_CLASS_INIT_METHOD_STATUS_OK;
+       bt_self_component_add_port_status add_port_status;
        struct details_comp *details_comp = NULL;
 
-       status = bt_self_component_sink_add_input_port(comp, in_port_name,
-               NULL, NULL);
-       if (status != BT_SELF_COMPONENT_STATUS_OK) {
-               goto error;
+       add_port_status = bt_self_component_sink_add_input_port(comp,
+               in_port_name, NULL, NULL);
+       switch (add_port_status) {
+       case BT_SELF_COMPONENT_ADD_PORT_STATUS_OK:
+               status = BT_COMPONENT_CLASS_INIT_METHOD_STATUS_OK;
+               break;
+       case BT_SELF_COMPONENT_ADD_PORT_STATUS_ERROR:
+               status = BT_COMPONENT_CLASS_INIT_METHOD_STATUS_ERROR;
+               break;
+       case BT_SELF_COMPONENT_ADD_PORT_STATUS_MEMORY_ERROR:
+               status = BT_COMPONENT_CLASS_INIT_METHOD_STATUS_MEMORY_ERROR;
+               break;
+       default:
+               abort();
        }
 
        details_comp = create_details_comp(comp);
        if (!details_comp) {
-               status = BT_SELF_COMPONENT_STATUS_NOMEM;
+               status = BT_COMPONENT_CLASS_INIT_METHOD_STATUS_MEMORY_ERROR;
                goto error;
        }
 
@@ -417,8 +420,8 @@ bt_self_component_status details_init(bt_self_component_sink *comp,
        goto end;
 
 error:
-       if (status == BT_SELF_COMPONENT_STATUS_OK) {
-               status = BT_SELF_COMPONENT_STATUS_ERROR;
+       if (status == BT_COMPONENT_CLASS_INIT_METHOD_STATUS_OK) {
+               status = BT_COMPONENT_CLASS_INIT_METHOD_STATUS_ERROR;
        }
 
        destroy_details_comp(details_comp);
@@ -428,10 +431,12 @@ end:
 }
 
 BT_HIDDEN
-bt_self_component_status details_graph_is_configured(
-               bt_self_component_sink *comp)
+bt_component_class_sink_graph_is_configured_method_status
+details_graph_is_configured(bt_self_component_sink *comp)
 {
-       bt_self_component_status status = BT_SELF_COMPONENT_STATUS_OK;
+       bt_component_class_sink_graph_is_configured_method_status status;
+       bt_self_component_port_input_message_iterator_create_from_sink_component_status
+               msg_iter_status;
        bt_self_component_port_input_message_iterator *iterator;
        struct details_comp *details_comp;
        bt_self_component_port_input *in_port;
@@ -445,33 +450,37 @@ bt_self_component_status details_graph_is_configured(
                        bt_self_component_port_input_as_port_input(in_port)))) {
                BT_COMP_LOGE("Single input port is not connected: "
                        "port-name=\"%s\"", in_port_name);
-               status = BT_SELF_COMPONENT_STATUS_ERROR;
+               status = BT_COMPONENT_CLASS_SINK_GRAPH_IS_CONFIGURED_METHOD_STATUS_ERROR;
                goto end;
        }
 
-       iterator = bt_self_component_port_input_message_iterator_create(
-               bt_self_component_sink_borrow_input_port_by_name(comp,
-                       in_port_name));
-       if (!iterator) {
-               status = BT_SELF_COMPONENT_STATUS_NOMEM;
+       msg_iter_status = bt_self_component_port_input_message_iterator_create_from_sink_component(
+               comp, bt_self_component_sink_borrow_input_port_by_name(comp,
+                       in_port_name), &iterator);
+       if (msg_iter_status != BT_SELF_COMPONENT_PORT_INPUT_MESSAGE_ITERATOR_CREATE_FROM_SINK_COMPONENT_STATUS_OK) {
+               status = (int) msg_iter_status;
                goto end;
        }
 
        BT_SELF_COMPONENT_PORT_INPUT_MESSAGE_ITERATOR_MOVE_REF(
                details_comp->msg_iter, iterator);
 
+       status = BT_COMPONENT_CLASS_SINK_GRAPH_IS_CONFIGURED_METHOD_STATUS_OK;
+
 end:
        return status;
 }
 
 BT_HIDDEN
-bt_self_component_status details_consume(bt_self_component_sink *comp)
+bt_component_class_sink_consume_method_status
+details_consume(bt_self_component_sink *comp)
 {
-       bt_self_component_status ret = BT_SELF_COMPONENT_STATUS_OK;
+       bt_component_class_sink_consume_method_status ret =
+               BT_COMPONENT_CLASS_SINK_CONSUME_METHOD_STATUS_OK;
        bt_message_array_const msgs;
        uint64_t count;
        struct details_comp *details_comp;
-       bt_message_iterator_status it_ret;
+       bt_message_iterator_next_status next_status;
        uint64_t i;
 
        details_comp = bt_self_component_get_data(
@@ -480,11 +489,11 @@ bt_self_component_status details_consume(bt_self_component_sink *comp)
        BT_ASSERT(details_comp->msg_iter);
 
        /* Consume messages */
-       it_ret = bt_self_component_port_input_message_iterator_next(
+       next_status = bt_self_component_port_input_message_iterator_next(
                details_comp->msg_iter, &msgs, &count);
-       switch (it_ret) {
-       case BT_MESSAGE_ITERATOR_STATUS_OK:
-               ret = BT_SELF_COMPONENT_STATUS_OK;
+       switch (next_status) {
+       case BT_MESSAGE_ITERATOR_NEXT_STATUS_OK:
+               ret = BT_COMPONENT_CLASS_SINK_CONSUME_METHOD_STATUS_OK;
 
                for (i = 0; i < count; i++) {
                        int print_ret = details_write_message(details_comp,
@@ -496,7 +505,7 @@ bt_self_component_status details_consume(bt_self_component_sink *comp)
                                        bt_message_put_ref(msgs[i]);
                                }
 
-                               ret = BT_SELF_COMPONENT_STATUS_ERROR;
+                               ret = BT_COMPONENT_CLASS_SINK_CONSUME_METHOD_STATUS_ERROR;
                                goto end;
                        }
 
@@ -512,17 +521,17 @@ bt_self_component_status details_consume(bt_self_component_sink *comp)
                }
 
                break;
-       case BT_MESSAGE_ITERATOR_STATUS_AGAIN:
-               ret = BT_SELF_COMPONENT_STATUS_AGAIN;
+       case BT_MESSAGE_ITERATOR_NEXT_STATUS_AGAIN:
+               ret = BT_COMPONENT_CLASS_SINK_CONSUME_METHOD_STATUS_AGAIN;
                goto end;
-       case BT_MESSAGE_ITERATOR_STATUS_END:
-               ret = BT_SELF_COMPONENT_STATUS_END;
+       case BT_MESSAGE_ITERATOR_NEXT_STATUS_END:
+               ret = BT_COMPONENT_CLASS_SINK_CONSUME_METHOD_STATUS_END;
                goto end;
-       case BT_MESSAGE_ITERATOR_STATUS_ERROR:
-               ret = BT_SELF_COMPONENT_STATUS_ERROR;
+       case BT_MESSAGE_ITERATOR_NEXT_STATUS_ERROR:
+               ret = BT_COMPONENT_CLASS_SINK_CONSUME_METHOD_STATUS_ERROR;
                goto end;
-       case BT_MESSAGE_ITERATOR_STATUS_NOMEM:
-               ret = BT_SELF_COMPONENT_STATUS_NOMEM;
+       case BT_MESSAGE_ITERATOR_NEXT_STATUS_MEMORY_ERROR:
+               ret = BT_COMPONENT_CLASS_SINK_CONSUME_METHOD_STATUS_MEMORY_ERROR;
                goto end;
        default:
                abort();
This page took 0.051244 seconds and 4 git commands to generate.