summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
2b43acf)
Also, if there's no clock class in the event notification's clock class
priority map, then do not print any timestamp.
Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
AM_CFLAGS = $(PACKAGE_CFLAGS) -I$(top_srcdir)/include -I$(top_srcdir)/plugins
AM_CFLAGS = $(PACKAGE_CFLAGS) -I$(top_srcdir)/include -I$(top_srcdir)/plugins
noinst_LTLIBRARIES = libbabeltrace-plugin-text-pretty-cc.la
# ctf-text plugin
noinst_LTLIBRARIES = libbabeltrace-plugin-text-pretty-cc.la
# ctf-text plugin
break;
case BT_NOTIFICATION_TYPE_EVENT:
{
break;
case BT_NOTIFICATION_TYPE_EVENT:
{
- struct bt_ctf_event *event = bt_notification_event_get_event(
- notification);
-
- if (!event) {
- ret = BT_COMPONENT_STATUS_ERROR;
- goto end;
- }
- ret = pretty_print_event(pretty, event);
- bt_put(event);
+ ret = pretty_print_event(pretty, notification);
if (ret != BT_COMPONENT_STATUS_OK) {
goto end;
}
if (ret != BT_COMPONENT_STATUS_OK) {
goto end;
}
notification = bt_notification_iterator_get_notification(it);
assert(notification);
ret = handle_notification(pretty, notification);
notification = bt_notification_iterator_get_notification(it);
assert(notification);
ret = handle_notification(pretty, notification);
- pretty->processed_first_event = true;
end:
bt_put(notification);
return ret;
end:
bt_put(notification);
return ret;
struct pretty_options options;
struct bt_notification_iterator *input_iterator;
FILE *out, *err;
struct pretty_options options;
struct bt_notification_iterator *input_iterator;
FILE *out, *err;
- bool processed_first_event; /* Should be per-iterator. */
int depth; /* nesting, used for tabulation alignment. */
bool start_line;
GString *string;
int depth; /* nesting, used for tabulation alignment. */
bool start_line;
GString *string;
BT_HIDDEN
enum bt_component_status pretty_print_event(struct pretty_component *pretty,
BT_HIDDEN
enum bt_component_status pretty_print_event(struct pretty_component *pretty,
- struct bt_ctf_event *event);
+ struct bt_notification *event_notif);
#endif /* BABELTRACE_PLUGIN_TEXT_PRETTY_PRETTY_H */
#endif /* BABELTRACE_PLUGIN_TEXT_PRETTY_PRETTY_H */
#include <babeltrace/ctf-ir/field-types.h>
#include <babeltrace/ctf-ir/fields.h>
#include <babeltrace/ctf-ir/trace.h>
#include <babeltrace/ctf-ir/field-types.h>
#include <babeltrace/ctf-ir/fields.h>
#include <babeltrace/ctf-ir/trace.h>
+#include <babeltrace/graph/notification-event.h>
+#include <babeltrace/graph/clock-class-priority-map.h>
#include <babeltrace/bitfield-internal.h>
#include <babeltrace/common-internal.h>
#include <inttypes.h>
#include <babeltrace/bitfield-internal.h>
#include <babeltrace/common-internal.h>
#include <inttypes.h>
static
enum bt_component_status print_event_timestamp(struct pretty_component *pretty,
static
enum bt_component_status print_event_timestamp(struct pretty_component *pretty,
- struct bt_ctf_event *event, bool *start_line)
+ struct bt_ctf_event *event,
+ struct bt_clock_class_priority_map *cc_prio_map,
+ bool *start_line)
{
bool print_names = pretty->options.print_header_field_names;
enum bt_component_status ret = BT_COMPONENT_STATUS_OK;
{
bool print_names = pretty->options.print_header_field_names;
enum bt_component_status ret = BT_COMPONENT_STATUS_OK;
ret = BT_COMPONENT_STATUS_ERROR;
goto end;
}
ret = BT_COMPONENT_STATUS_ERROR;
goto end;
}
- clock_class = bt_ctf_trace_get_clock_class(trace, 0);
+
+ if (bt_clock_class_priority_map_get_clock_class_count(cc_prio_map) == 0) {
+ /* No clock class: skip the timestamp without an error */
+ goto end;
+ }
+
+ clock_class =
+ bt_clock_class_priority_map_get_highest_priority_clock_class(
+ cc_prio_map);
if (!clock_class) {
ret = BT_COMPONENT_STATUS_ERROR;
goto end;
if (!clock_class) {
ret = BT_COMPONENT_STATUS_ERROR;
goto end;
static
enum bt_component_status print_event_header(struct pretty_component *pretty,
static
enum bt_component_status print_event_header(struct pretty_component *pretty,
- struct bt_ctf_event *event)
+ struct bt_ctf_event *event,
+ struct bt_clock_class_priority_map *cc_prio_map)
{
bool print_names = pretty->options.print_header_field_names;
enum bt_component_status ret = BT_COMPONENT_STATUS_OK;
{
bool print_names = pretty->options.print_header_field_names;
enum bt_component_status ret = BT_COMPONENT_STATUS_OK;
ret = BT_COMPONENT_STATUS_ERROR;
goto end;
}
ret = BT_COMPONENT_STATUS_ERROR;
goto end;
}
- ret = print_event_timestamp(pretty, event, &pretty->start_line);
+ ret = print_event_timestamp(pretty, event, cc_prio_map,
+ &pretty->start_line);
if (ret != BT_COMPONENT_STATUS_OK) {
goto end;
}
if (ret != BT_COMPONENT_STATUS_OK) {
goto end;
}
BT_HIDDEN
enum bt_component_status pretty_print_event(struct pretty_component *pretty,
BT_HIDDEN
enum bt_component_status pretty_print_event(struct pretty_component *pretty,
- struct bt_ctf_event *event)
+ struct bt_notification *event_notif)
{
enum bt_component_status ret;
{
enum bt_component_status ret;
+ struct bt_ctf_event *event =
+ bt_notification_event_get_event(event_notif);
+ struct bt_clock_class_priority_map *cc_prio_map =
+ bt_notification_event_get_clock_class_priority_map(event_notif);
+ assert(event);
+ assert(cc_prio_map);
pretty->start_line = true;
pretty->start_line = true;
- ret = print_event_header(pretty, event);
+ ret = print_event_header(pretty, event, cc_prio_map);
if (ret != BT_COMPONENT_STATUS_OK) {
goto end;
}
if (ret != BT_COMPONENT_STATUS_OK) {
goto end;
}
fputc('\n', pretty->out);
end:
fputc('\n', pretty->out);
end:
+ bt_put(event);
+ bt_put(cc_prio_map);