X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=plugins%2Ftext%2Fpretty%2Fpretty.c;h=7c548391ab79e4cecf8d33a0fccd47715b011cf6;hb=68b66a256a54d32992dfefeaad11eea88b7df234;hp=ae064c5e0b5a92360921c010a7582d6bed862784;hpb=bb5bb16080ef123c91a690eb267a8d83bd4fb199;p=babeltrace.git diff --git a/plugins/text/pretty/pretty.c b/plugins/text/pretty/pretty.c index ae064c5e..7c548391 100644 --- a/plugins/text/pretty/pretty.c +++ b/plugins/text/pretty/pretty.c @@ -23,14 +23,17 @@ * SOFTWARE. */ -#include -#include -#include +#define BT_LOG_TAG "PLUGIN-TEXT-PRETTY-SINK" +#include "logging.h" + +#include +#include +#include #include #include #include #include -#include +#include #include "pretty.h" @@ -62,10 +65,13 @@ const char *plugin_options[] = { "field-callsite", }; +static +const char * const in_port_name = "in"; + static void destroy_pretty_data(struct pretty_component *pretty) { - bt_object_put_ref(pretty->iterator); + bt_self_component_port_input_message_iterator_put_ref(pretty->iterator); if (pretty->string) { (void) g_string_free(pretty->string, TRUE); @@ -113,7 +119,7 @@ error: } BT_HIDDEN -void pretty_finalize(struct bt_self_component_sink *comp) +void pretty_finalize(bt_self_component_sink *comp) { destroy_pretty_data( bt_self_component_get_data( @@ -121,28 +127,29 @@ void pretty_finalize(struct bt_self_component_sink *comp) } static -enum bt_self_component_status handle_notification( +bt_self_component_status handle_message( struct pretty_component *pretty, - const struct bt_notification *notification) + const bt_message *message) { - enum bt_self_component_status ret = BT_SELF_COMPONENT_STATUS_OK; + bt_self_component_status ret = BT_SELF_COMPONENT_STATUS_OK; BT_ASSERT(pretty); - switch (bt_notification_get_type(notification)) { - case BT_NOTIFICATION_TYPE_PACKET_BEGINNING: - if (pretty_print_packet(pretty, notification)) { + switch (bt_message_get_type(message)) { + case BT_MESSAGE_TYPE_EVENT: + if (pretty_print_event(pretty, message)) { ret = BT_SELF_COMPONENT_STATUS_ERROR; } break; - case BT_NOTIFICATION_TYPE_EVENT: - if (pretty_print_event(pretty, notification)) { + case BT_MESSAGE_TYPE_MESSAGE_ITERATOR_INACTIVITY: + BT_LOGD_STR("Message iterator inactivity message."); + break; + case BT_MESSAGE_TYPE_DISCARDED_EVENTS: + case BT_MESSAGE_TYPE_DISCARDED_PACKETS: + if (pretty_print_discarded_items(pretty, message)) { ret = BT_SELF_COMPONENT_STATUS_ERROR; } break; - case BT_NOTIFICATION_TYPE_INACTIVITY: - fprintf(stderr, "Inactivity notification\n"); - break; default: break; } @@ -151,20 +158,19 @@ enum bt_self_component_status handle_notification( } BT_HIDDEN -enum bt_self_component_status pretty_port_connected( - struct bt_self_component_sink *comp, - struct bt_self_component_port_input *self_port, - const struct bt_port_output *other_port) +bt_self_component_status pretty_graph_is_configured( + bt_self_component_sink *comp) { - enum bt_self_component_status status = BT_SELF_COMPONENT_STATUS_OK; + bt_self_component_status status = BT_SELF_COMPONENT_STATUS_OK; struct pretty_component *pretty; pretty = bt_self_component_get_data( bt_self_component_sink_as_self_component(comp)); BT_ASSERT(pretty); BT_ASSERT(!pretty->iterator); - pretty->iterator = bt_self_component_port_input_notification_iterator_create( - self_port); + pretty->iterator = bt_self_component_port_input_message_iterator_create( + bt_self_component_sink_borrow_input_port_by_name(comp, + in_port_name)); if (!pretty->iterator) { status = BT_SELF_COMPONENT_STATUS_NOMEM; } @@ -173,68 +179,69 @@ enum bt_self_component_status pretty_port_connected( } BT_HIDDEN -enum bt_self_component_status pretty_consume( - struct bt_self_component_sink *comp) +bt_self_component_status pretty_consume( + bt_self_component_sink *comp) { - enum bt_self_component_status ret; - bt_notification_array_const notifs; - struct bt_self_component_port_input_notification_iterator *it; + bt_self_component_status ret; + bt_message_array_const msgs; + bt_self_component_port_input_message_iterator *it; struct pretty_component *pretty = bt_self_component_get_data( bt_self_component_sink_as_self_component(comp)); - enum bt_notification_iterator_status it_ret; + bt_message_iterator_status it_ret; uint64_t count = 0; uint64_t i = 0; it = pretty->iterator; - it_ret = bt_self_component_port_input_notification_iterator_next(it, - ¬ifs, &count); + it_ret = bt_self_component_port_input_message_iterator_next(it, + &msgs, &count); switch (it_ret) { - case BT_NOTIFICATION_ITERATOR_STATUS_OK: + case BT_MESSAGE_ITERATOR_STATUS_OK: break; - case BT_NOTIFICATION_ITERATOR_STATUS_NOMEM: + case BT_MESSAGE_ITERATOR_STATUS_NOMEM: ret = BT_SELF_COMPONENT_STATUS_NOMEM; goto end; - case BT_NOTIFICATION_ITERATOR_STATUS_AGAIN: + case BT_MESSAGE_ITERATOR_STATUS_AGAIN: ret = BT_SELF_COMPONENT_STATUS_AGAIN; goto end; - case BT_NOTIFICATION_ITERATOR_STATUS_END: + case BT_MESSAGE_ITERATOR_STATUS_END: ret = BT_SELF_COMPONENT_STATUS_END; - BT_OBJECT_PUT_REF_AND_RESET(pretty->iterator); + BT_SELF_COMPONENT_PORT_INPUT_MESSAGE_ITERATOR_PUT_REF_AND_RESET( + pretty->iterator); goto end; default: ret = BT_SELF_COMPONENT_STATUS_ERROR; goto end; } - BT_ASSERT(it_ret == BT_NOTIFICATION_ITERATOR_STATUS_OK); + BT_ASSERT(it_ret == BT_MESSAGE_ITERATOR_STATUS_OK); for (i = 0; i < count; i++) { - ret = handle_notification(pretty, notifs[i]); + ret = handle_message(pretty, msgs[i]); if (ret) { goto end; } - bt_object_put_ref(notifs[i]); + bt_message_put_ref(msgs[i]); } end: for (; i < count; i++) { - bt_object_put_ref(notifs[i]); + bt_message_put_ref(msgs[i]); } return ret; } static -int add_params_to_map(struct bt_value *plugin_opt_map) +int add_params_to_map(bt_value *plugin_opt_map) { int ret = 0; unsigned int i; for (i = 0; i < BT_ARRAY_SIZE(plugin_options); i++) { const char *key = plugin_options[i]; - enum bt_value_status status; + bt_value_status status; status = bt_value_map_insert_entry(plugin_opt_map, key, bt_value_null); @@ -251,7 +258,7 @@ end: } static -bt_bool check_param_exists(const char *key, const struct bt_value *object, +bt_bool check_param_exists(const char *key, const bt_value *object, void *data) { struct pretty_component *pretty = data; @@ -265,9 +272,9 @@ bt_bool check_param_exists(const char *key, const struct bt_value *object, } static -void apply_one_string(const char *key, const struct bt_value *params, char **option) +void apply_one_string(const char *key, const bt_value *params, char **option) { - const struct bt_value *value = NULL; + const bt_value *value = NULL; const char *str; value = bt_value_map_borrow_entry_value_const(params, key); @@ -285,10 +292,10 @@ end: } static -void apply_one_bool(const char *key, const struct bt_value *params, bool *option, +void apply_one_bool(const char *key, const bt_value *params, bool *option, bool *found) { - const struct bt_value *value = NULL; + const bt_value *value = NULL; bt_bool bool_val; value = bt_value_map_borrow_entry_value_const(params, key); @@ -336,10 +343,10 @@ end: } static -int apply_params(struct pretty_component *pretty, const struct bt_value *params) +int apply_params(struct pretty_component *pretty, const bt_value *params) { int ret = 0; - enum bt_value_status status; + bt_value_status status; bool value, found; char *str = NULL; @@ -365,7 +372,7 @@ int apply_params(struct pretty_component *pretty, const struct bt_value *params) /* Known parameters. */ pretty->options.color = PRETTY_COLOR_OPT_AUTO; if (bt_value_map_has_entry(params, "color")) { - const struct bt_value *color_value; + const bt_value *color_value; const char *color; color_value = bt_value_map_borrow_entry_value_const(params, @@ -592,7 +599,7 @@ int apply_params(struct pretty_component *pretty, const struct bt_value *params) } end: - bt_object_put_ref(pretty->plugin_opt_map); + bt_value_put_ref(pretty->plugin_opt_map); pretty->plugin_opt_map = NULL; g_free(str); return ret; @@ -635,12 +642,12 @@ void init_stream_packet_context_quarks(void) } BT_HIDDEN -enum bt_self_component_status pretty_init( - struct bt_self_component_sink *comp, - const struct bt_value *params, +bt_self_component_status pretty_init( + bt_self_component_sink *comp, + const bt_value *params, UNUSED_VAR void *init_method_data) { - enum bt_self_component_status ret; + bt_self_component_status ret; struct pretty_component *pretty = create_pretty(); if (!pretty) { @@ -648,7 +655,8 @@ enum bt_self_component_status pretty_init( goto end; } - ret = bt_self_component_sink_add_input_port(comp, "in", NULL, NULL); + ret = bt_self_component_sink_add_input_port(comp, in_port_name, + NULL, NULL); if (ret != BT_SELF_COMPONENT_STATUS_OK) { goto end; }