X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=src%2Fplugins%2Ftext%2Fdetails%2Fdetails.c;h=47a29326313fe5b1aba827dbc07f654bb873b3a6;hb=335a2da576e59d32c17de2ece1e7e339c50e9c25;hp=8f09efa4050572ffc427c717b9d1a6aa162ff8e1;hpb=350ad6c1c5f45a4e90c33e3c1354125c209bbf02;p=babeltrace.git diff --git a/src/plugins/text/details/details.c b/src/plugins/text/details/details.c index 8f09efa4..47a29326 100644 --- a/src/plugins/text/details/details.c +++ b/src/plugins/text/details/details.c @@ -20,8 +20,10 @@ * SOFTWARE. */ +#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 "logging.h" +#include "plugins/comp-logging.h" #include @@ -32,7 +34,7 @@ #define LOG_WRONG_PARAM_TYPE(_name, _value, _exp_type) \ do { \ - BT_LOGE("Wrong `%s` parameter type: type=%s, " \ + BT_COMP_LOGE("Wrong `%s` parameter type: type=%s, " \ "expected-type=%s", \ (_name), bt_common_value_type_string( \ bt_value_get_type(_value)), \ @@ -51,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"; @@ -137,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(); + } } } @@ -158,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); @@ -181,14 +184,20 @@ end: } static -struct details_comp *create_details_comp(void) +struct details_comp *create_details_comp( + bt_self_component_sink *self_comp_sink) { struct details_comp *details_comp = g_new0(struct details_comp, 1); + bt_self_component *self_comp = + bt_self_component_sink_as_self_component(self_comp_sink); if (!details_comp) { goto error; } + details_comp->log_level = bt_component_get_logging_level( + bt_self_component_as_component(self_comp)); + details_comp->self_comp = self_comp; details_comp->meta = g_hash_table_new_full(g_direct_hash, g_direct_equal, NULL, (GDestroyNotify) details_destroy_details_trace_class_meta); @@ -282,7 +291,7 @@ int configure_details_comp(struct details_comp *details_comp, } else if (strcmp(str, "always") == 0) { details_comp->cfg.with_color = true; } else { - BT_LOGE("Invalid `%s` parameter: unknown value " + BT_COMP_LOGE("Invalid `%s` parameter: unknown value " "(expecting `never`, `auto`, or `always`): " "value=\"%s\"", color_param_name, str); goto error; @@ -310,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, @@ -362,44 +363,54 @@ static void log_configuration(bt_self_component_sink *comp, struct details_comp *details_comp) { - BT_LOGI("Configuration for `sink.text.details` component `%s`:", + BT_COMP_LOGI("Configuration for `sink.text.details` component `%s`:", bt_component_get_name(bt_self_component_as_component( bt_self_component_sink_as_self_component(comp)))); - BT_LOGI(" Colorize output: %d", details_comp->cfg.with_color); - BT_LOGI(" Compact: %d", details_comp->cfg.compact); - BT_LOGI(" With metadata: %d", details_comp->cfg.with_meta); - BT_LOGI(" With time: %d", details_comp->cfg.with_time); - BT_LOGI(" With trace class name: %d", - details_comp->cfg.with_trace_class_name); - BT_LOGI(" With trace name: %d", details_comp->cfg.with_trace_name); - BT_LOGI(" With stream class name: %d", + BT_COMP_LOGI(" Colorize output: %d", details_comp->cfg.with_color); + 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 name: %d", details_comp->cfg.with_trace_name); + BT_COMP_LOGI(" With stream class name: %d", details_comp->cfg.with_stream_class_name); - BT_LOGI(" With stream name: %d", details_comp->cfg.with_stream_name); - BT_LOGI(" With UUID: %d", details_comp->cfg.with_uuid); + BT_COMP_LOGI(" With stream name: %d", details_comp->cfg.with_stream_name); + BT_COMP_LOGI(" With UUID: %d", details_comp->cfg.with_uuid); } 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(); + 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; } if (configure_details_comp(details_comp, params)) { - BT_LOGE_STR("Failed to configure component."); + BT_COMP_LOGE_STR("Failed to configure component."); goto error; } @@ -409,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); @@ -420,10 +431,11 @@ 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_COMPONENT_CLASS_SINK_GRAPH_IS_CONFIGURED_METHOD_STATUS_OK; bt_self_component_port_input_message_iterator *iterator; struct details_comp *details_comp; bt_self_component_port_input *in_port; @@ -435,9 +447,9 @@ bt_self_component_status details_graph_is_configured( in_port_name); if (!bt_port_is_connected(bt_port_input_as_port_const( bt_self_component_port_input_as_port_input(in_port)))) { - BT_LOGE("Single input port is not connected: " + 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; } @@ -445,7 +457,7 @@ bt_self_component_status details_graph_is_configured( bt_self_component_sink_borrow_input_port_by_name(comp, in_port_name)); if (!iterator) { - status = BT_SELF_COMPONENT_STATUS_NOMEM; + status = BT_COMPONENT_CLASS_SINK_GRAPH_IS_CONFIGURED_METHOD_STATUS_MEMORY_ERROR; goto end; } @@ -457,13 +469,15 @@ end: } 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( @@ -472,11 +486,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, @@ -488,7 +502,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; } @@ -504,17 +518,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();