X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=lib%2Ftrace-ir%2Fstream-class.c;h=1f6732d883cf221dbe2f18731161da3cf6560a05;hb=68b66a256a54d32992dfefeaad11eea88b7df234;hp=b76580d5b4796af6643e0f9c447ebf9fbb1df095;hpb=93875071881517bbcf7d479b7c955297906f87d0;p=babeltrace.git diff --git a/lib/trace-ir/stream-class.c b/lib/trace-ir/stream-class.c index b76580d5..1f6732d8 100644 --- a/lib/trace-ir/stream-class.c +++ b/lib/trace-ir/stream-class.c @@ -22,24 +22,24 @@ */ #define BT_LOG_TAG "STREAM-CLASS" -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include #include @@ -284,6 +284,14 @@ bt_stream_class_borrow_packet_context_field_class_const( return stream_class->packet_context_fc; } +struct bt_field_class * +bt_stream_class_borrow_packet_context_field_class( + struct bt_stream_class *stream_class) +{ + BT_ASSERT_PRE_NON_NULL(stream_class, "Stream class"); + return stream_class->packet_context_fc; +} + enum bt_stream_class_status bt_stream_class_set_packet_context_field_class( struct bt_stream_class *stream_class, struct bt_field_class *field_class) @@ -334,6 +342,14 @@ bt_stream_class_borrow_event_common_context_field_class_const( return stream_class->event_common_context_fc; } +struct bt_field_class * +bt_stream_class_borrow_event_common_context_field_class( + struct bt_stream_class *stream_class) +{ + BT_ASSERT_PRE_NON_NULL(stream_class, "Stream class"); + return stream_class->event_common_context_fc; +} + enum bt_stream_class_status bt_stream_class_set_event_common_context_field_class( struct bt_stream_class *stream_class, @@ -435,6 +451,46 @@ void bt_stream_class_set_assigns_automatic_event_class_id( "assignment property: %!+S", stream_class); } +bt_bool bt_stream_class_packets_have_beginning_default_clock_snapshot( + const struct bt_stream_class *stream_class) +{ + BT_ASSERT_PRE_NON_NULL(stream_class, "Stream class"); + return (bt_bool) stream_class->packets_have_beginning_default_clock_snapshot; +} + +void bt_stream_class_set_packets_have_beginning_default_clock_snapshot( + struct bt_stream_class *stream_class, bt_bool value) +{ + BT_ASSERT_PRE_NON_NULL(stream_class, "Stream class"); + BT_ASSERT_PRE_STREAM_CLASS_HOT(stream_class); + BT_ASSERT_PRE(!value || stream_class->default_clock_class, + "Stream class has no default clock class: %!+S", stream_class); + stream_class->packets_have_beginning_default_clock_snapshot = + (bool) value; + BT_LIB_LOGV("Set stream class's \"packets have default beginning " + "clock snapshot\" property: %!+S", stream_class); +} + +bt_bool bt_stream_class_packets_have_end_default_clock_snapshot( + const struct bt_stream_class *stream_class) +{ + BT_ASSERT_PRE_NON_NULL(stream_class, "Stream class"); + return (bt_bool) stream_class->packets_have_end_default_clock_snapshot; +} + +void bt_stream_class_set_packets_have_end_default_clock_snapshot( + struct bt_stream_class *stream_class, bt_bool value) +{ + BT_ASSERT_PRE_NON_NULL(stream_class, "Stream class"); + BT_ASSERT_PRE_STREAM_CLASS_HOT(stream_class); + BT_ASSERT_PRE(!value || stream_class->default_clock_class, + "Stream class has no default clock class: %!+S", stream_class); + stream_class->packets_have_end_default_clock_snapshot = + (bool) value; + BT_LIB_LOGV("Set stream class's \"packets have default end " + "clock snapshot\" property: %!+S", stream_class); +} + bt_bool bt_stream_class_assigns_automatic_stream_id( const struct bt_stream_class *stream_class) { @@ -442,6 +498,78 @@ bt_bool bt_stream_class_assigns_automatic_stream_id( return (bt_bool) stream_class->assigns_automatic_stream_id; } +void bt_stream_class_set_supports_discarded_events( + struct bt_stream_class *stream_class, + bt_bool supports_discarded_events, + bt_bool with_default_clock_snapshots) +{ + BT_ASSERT_PRE_NON_NULL(stream_class, "Stream class"); + BT_ASSERT_PRE_STREAM_CLASS_HOT(stream_class); + BT_ASSERT_PRE(supports_discarded_events || + !with_default_clock_snapshots, + "Discarded events cannot have default clock snapshots when " + "not supported: %!+S", stream_class); + BT_ASSERT_PRE(!with_default_clock_snapshots || + stream_class->default_clock_class, + "Stream class has no default clock class: %!+S", stream_class); + stream_class->supports_discarded_events = + (bool) supports_discarded_events; + stream_class->discarded_events_have_default_clock_snapshots = + (bool) with_default_clock_snapshots; + BT_LIB_LOGV("Set stream class's discarded events support property: " + "%!+S", stream_class); +} + +bt_bool bt_stream_class_supports_discarded_events( + const struct bt_stream_class *stream_class) +{ + BT_ASSERT_PRE_NON_NULL(stream_class, "Stream class"); + return (bt_bool) stream_class->supports_discarded_events; +} + +bt_bool bt_stream_class_discarded_events_have_default_clock_snapshots( + const struct bt_stream_class *stream_class) +{ + BT_ASSERT_PRE_NON_NULL(stream_class, "Stream class"); + return (bt_bool) stream_class->discarded_events_have_default_clock_snapshots; +} + +void bt_stream_class_set_supports_discarded_packets( + struct bt_stream_class *stream_class, + bt_bool supports_discarded_packets, + bt_bool with_default_clock_snapshots) +{ + BT_ASSERT_PRE_NON_NULL(stream_class, "Stream class"); + BT_ASSERT_PRE_STREAM_CLASS_HOT(stream_class); + BT_ASSERT_PRE(supports_discarded_packets || + !with_default_clock_snapshots, + "Discarded packets cannot have default clock snapshots when " + "not supported: %!+S", stream_class); + BT_ASSERT_PRE(!with_default_clock_snapshots || + stream_class->default_clock_class, + "Stream class has no default clock class: %!+S", stream_class); + stream_class->supports_discarded_packets = + (bool) supports_discarded_packets; + stream_class->discarded_packets_have_default_clock_snapshots = + (bool) with_default_clock_snapshots; + BT_LIB_LOGV("Set stream class's discarded packets support property: " + "%!+S", stream_class); +} + +bt_bool bt_stream_class_supports_discarded_packets( + const struct bt_stream_class *stream_class) +{ + BT_ASSERT_PRE_NON_NULL(stream_class, "Stream class"); + return (bt_bool) stream_class->supports_discarded_packets; +} + +bt_bool bt_stream_class_discarded_packets_have_default_clock_snapshots( + const struct bt_stream_class *stream_class) +{ + BT_ASSERT_PRE_NON_NULL(stream_class, "Stream class"); + return (bt_bool) stream_class->discarded_packets_have_default_clock_snapshots; +} + void bt_stream_class_set_assigns_automatic_stream_id( struct bt_stream_class *stream_class, bt_bool value) @@ -453,13 +581,6 @@ void bt_stream_class_set_assigns_automatic_stream_id( "assignment property: %!+S", stream_class); } -bt_bool bt_stream_class_default_clock_is_always_known( - const struct bt_stream_class *stream_class) -{ - /* BT_CLOCK_SNAPSHOT_STATE_UNKNOWN is not supported as of 2.0 */ - return BT_TRUE; -} - void bt_stream_class_get_ref(const struct bt_stream_class *stream_class) { bt_object_get_ref(stream_class);