X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=include%2Fbabeltrace%2Ftrace-ir%2Fstream-class-const.h;h=84a4ba77105e605316f2bddd3c8f0751b5b991e3;hb=9b24b6aa4258079f2b59fa156dd3e070969f6f2a;hp=2b4cb3d305cbc81def08724b9a44b5d6054c159a;hpb=40f4ba76dd6f9508ca51b6220eaed57632281a07;p=babeltrace.git diff --git a/include/babeltrace/trace-ir/stream-class-const.h b/include/babeltrace/trace-ir/stream-class-const.h index 2b4cb3d3..84a4ba77 100644 --- a/include/babeltrace/trace-ir/stream-class-const.h +++ b/include/babeltrace/trace-ir/stream-class-const.h @@ -2,10 +2,9 @@ #define BABELTRACE_TRACE_IR_STREAM_CLASS_CONST_H /* + * Copyright 2017-2018 Philippe Proulx * Copyright 2014 Jérémie Galarneau * - * Author: Jérémie Galarneau - * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights @@ -30,76 +29,93 @@ #include -/* For bt_bool */ +/* + * For bt_bool, bt_trace_class, bt_stream_class, bt_event_class, + * bt_stream_class + */ #include #ifdef __cplusplus extern "C" { #endif -struct bt_trace; -struct bt_stream_class; -struct bt_event_class; -struct bt_clock_class; -struct bt_event_header_field; -struct bt_packet_context_field; +typedef enum bt_stream_class_status { + BT_STREAM_CLASS_STATUS_OK = 0, + BT_STREAM_CLASS_STATUS_NOMEM = -12, +} bt_stream_class_status; -extern const struct bt_trace *bt_stream_class_borrow_trace_const( - const struct bt_stream_class *stream_class); +extern const bt_trace_class *bt_stream_class_borrow_trace_class_const( + const bt_stream_class *stream_class); extern const char *bt_stream_class_get_name( - const struct bt_stream_class *stream_class); + const bt_stream_class *stream_class); extern bt_bool bt_stream_class_assigns_automatic_event_class_id( - const struct bt_stream_class *stream_class); + const bt_stream_class *stream_class); extern bt_bool bt_stream_class_assigns_automatic_stream_id( - const struct bt_stream_class *stream_class); + const bt_stream_class *stream_class); + +extern bt_bool bt_stream_class_packets_have_beginning_default_clock_snapshot( + const bt_stream_class *stream_class); + +extern bt_bool bt_stream_class_packets_have_end_default_clock_snapshot( + const bt_stream_class *stream_class); + +extern bt_bool bt_stream_class_supports_discarded_events( + const bt_stream_class *stream_class); + +extern bt_bool bt_stream_class_supports_discarded_packets( + const bt_stream_class *stream_class); + +extern bt_bool bt_stream_class_discarded_events_have_default_clock_snapshots( + const bt_stream_class *stream_class); + +extern bt_bool bt_stream_class_discarded_packets_have_default_clock_snapshots( + const bt_stream_class *stream_class); extern uint64_t bt_stream_class_get_id( - const struct bt_stream_class *stream_class); + const bt_stream_class *stream_class); -extern const struct bt_field_class * +extern const bt_field_class * bt_stream_class_borrow_packet_context_field_class_const( - const struct bt_stream_class *stream_class); + const bt_stream_class *stream_class); -extern const struct bt_field_class * -bt_stream_class_borrow_event_header_field_class_const( - const struct bt_stream_class *stream_class); - -extern const struct bt_field_class * +extern const bt_field_class * bt_stream_class_borrow_event_common_context_field_class_const( - const struct bt_stream_class *stream_class); + const bt_stream_class *stream_class); extern uint64_t bt_stream_class_get_event_class_count( - const struct bt_stream_class *stream_class); + const bt_stream_class *stream_class); -extern const struct bt_event_class * +extern const bt_event_class * bt_stream_class_borrow_event_class_by_index_const( - const struct bt_stream_class *stream_class, uint64_t index); + const bt_stream_class *stream_class, uint64_t index); -extern const struct bt_event_class * +extern const bt_event_class * bt_stream_class_borrow_event_class_by_id_const( - const struct bt_stream_class *stream_class, uint64_t id); + const bt_stream_class *stream_class, uint64_t id); -extern const struct bt_clock_class * +extern const bt_clock_class * bt_stream_class_borrow_default_clock_class_const( - const struct bt_stream_class *stream_class); - -extern bt_bool bt_stream_class_default_clock_is_always_known( - const struct bt_stream_class *stream_class); + const bt_stream_class *stream_class); -extern bt_bool bt_stream_class_packets_have_discarded_event_counter_snapshot( - const struct bt_stream_class *stream_class); +extern void bt_stream_class_get_ref(const bt_stream_class *stream_class); -extern bt_bool bt_stream_class_packets_have_packet_counter_snapshot( - const struct bt_stream_class *stream_class); +extern void bt_stream_class_put_ref(const bt_stream_class *stream_class); -extern bt_bool bt_stream_class_packets_have_default_beginning_clock_value( - const struct bt_stream_class *stream_class); +#define BT_STREAM_CLASS_PUT_REF_AND_RESET(_var) \ + do { \ + bt_stream_class_put_ref(_var); \ + (_var) = NULL; \ + } while (0) -extern bt_bool bt_stream_class_packets_have_default_end_clock_value( - const struct bt_stream_class *stream_class); +#define BT_STREAM_CLASS_MOVE_REF(_var_dst, _var_src) \ + do { \ + bt_stream_class_put_ref(_var_dst); \ + (_var_dst) = (_var_src); \ + (_var_src) = NULL; \ + } while (0) #ifdef __cplusplus }