Make parent parameters const for some object creation functions
authorPhilippe Proulx <eeppeliteloop@gmail.com>
Wed, 13 Feb 2019 17:13:26 +0000 (12:13 -0500)
committerFrancis Deslauriers <francis.deslauriers@efficios.com>
Thu, 2 May 2019 20:50:15 +0000 (20:50 +0000)
The goal of this patch is for a filter message iterator to be able to
create new messages with existing streams, packets, or clock classes
(not created by itself). This can be used to replace an original message
by a similar one, but slightly different.

One use case is `flt.utils.trimmer` which potentially needs to remove
original stream activity beginning/end messages and insert its own ones
to represent the trimming time range. `flt.utils.trimmer` also needs to
change the beginning and end times of discarded events/packets messages,
which it can do now by creating new messages using the original stream.

We cannot apply this to something like bt_stream_create() (making the
stream class and trace parameters const) because a stream has a parent
(trace object), therefore clashes could exist if any filter can add a
new stream to a trace which it did not create. Events, packets, and
messages have no parent.

Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
19 files changed:
include/babeltrace/graph/message-discarded-events.h
include/babeltrace/graph/message-discarded-packets.h
include/babeltrace/graph/message-event.h
include/babeltrace/graph/message-inactivity.h
include/babeltrace/graph/message-packet-beginning.h
include/babeltrace/graph/message-packet-end.h
include/babeltrace/graph/message-stream-activity-beginning.h
include/babeltrace/graph/message-stream-activity-end.h
include/babeltrace/graph/message-stream-beginning.h
include/babeltrace/graph/message-stream-end.h
include/babeltrace/trace-ir/packet.h
lib/graph/message/discarded-items.c
lib/graph/message/event.c
lib/graph/message/inactivity.c
lib/graph/message/packet.c
lib/graph/message/stream-activity.c
lib/graph/message/stream.c
lib/trace-ir/clock-snapshot.c
lib/trace-ir/packet.c

index 787691d0cd6f9df4549260cff3d9cc5df06bfff2..436ddcf62d07c62a354d1d0d476d485c52def498 100644 (file)
@@ -34,11 +34,11 @@ extern "C" {
 
 extern bt_message *bt_message_discarded_events_create(
                bt_self_message_iterator *message_iterator,
-               bt_stream *stream);
+               const bt_stream *stream);
 
 extern bt_message *bt_message_discarded_events_create_with_default_clock_snapshots(
                bt_self_message_iterator *message_iterator,
-               bt_stream *stream, uint64_t beginning_raw_value,
+               const bt_stream *stream, uint64_t beginning_raw_value,
                uint64_t end_raw_value);
 
 extern bt_stream *bt_message_discarded_events_borrow_stream(
index cb8dc73823b6fd2d7ca86dfee8ab303a6c09dacd..d12768cae4dd33275d262e672ec8f2cbd0b2ceb2 100644 (file)
@@ -34,11 +34,11 @@ extern "C" {
 
 extern bt_message *bt_message_discarded_packets_create(
                bt_self_message_iterator *message_iterator,
-               bt_stream *stream);
+               const bt_stream *stream);
 
 extern bt_message *bt_message_discarded_packets_create_with_default_clock_snapshots(
                bt_self_message_iterator *message_iterator,
-               bt_stream *stream, uint64_t beginning_raw_value,
+               const bt_stream *stream, uint64_t beginning_raw_value,
                uint64_t end_raw_value);
 
 extern bt_stream *bt_message_discarded_packets_borrow_stream(
index 9a727475157eed737714d427f31c22012e5f56f6..733d91ad52b76501f1a87216a8009df0f3097830 100644 (file)
@@ -37,8 +37,8 @@ extern "C" {
 extern
 bt_message *bt_message_event_create(
                bt_self_message_iterator *message_iterator,
-               bt_event_class *event_class,
-               bt_packet *packet);
+               const bt_event_class *event_class,
+               const bt_packet *packet);
 
 extern bt_event *bt_message_event_borrow_event(
                bt_message *message);
index 2549815d288f3a4f907d13d994b22dcc62c36651..d2d43d011351feadf22e3370c25d2a5324ca851c 100644 (file)
@@ -35,7 +35,7 @@ extern "C" {
 extern
 bt_message *bt_message_inactivity_create(
                bt_self_message_iterator *message_iterator,
-               bt_clock_class *default_clock_class);
+               const bt_clock_class *default_clock_class);
 
 extern void bt_message_inactivity_set_default_clock_snapshot(
                bt_message *msg, uint64_t raw_value);
index e7d425467afcf9f894ce30300db859f55271b0fe..0b60cc9619b1a8c73173dbc93a13e7537a1e075f 100644 (file)
@@ -34,7 +34,7 @@ extern "C" {
 extern
 bt_message *bt_message_packet_beginning_create(
                bt_self_message_iterator *message_iterator,
-               bt_packet *packet);
+               const bt_packet *packet);
 
 extern bt_packet *bt_message_packet_beginning_borrow_packet(
                bt_message *message);
index 12cf0fc716445d2a1bf637dc1a344af69010fc75..1d049ca1bb4222c45b782d41508804ebf59652e4 100644 (file)
@@ -34,7 +34,7 @@ extern "C" {
 extern
 bt_message *bt_message_packet_end_create(
                bt_self_message_iterator *message_iterator,
-               bt_packet *packet);
+               const bt_packet *packet);
 
 extern bt_packet *bt_message_packet_end_borrow_packet(
                bt_message *message);
index 2449a728678eb01020f03a0733db66c22531a64e..d8ad11475ff8653fff117bf84e013bf2c211c869 100644 (file)
@@ -35,7 +35,7 @@ extern "C" {
 
 extern bt_message *bt_message_stream_activity_beginning_create(
                bt_self_message_iterator *message_iterator,
-               bt_stream *stream);
+               const bt_stream *stream);
 
 extern bt_stream *bt_message_stream_activity_beginning_borrow_stream(
                bt_message *message);
index 7836745e3f60f9eba1009717c7a48d6ec0a919b5..cb4f26eaf5bbe3c8ada9874aabaf8734f9822b0b 100644 (file)
@@ -35,7 +35,7 @@ extern "C" {
 
 extern bt_message *bt_message_stream_activity_end_create(
                bt_self_message_iterator *message_iterator,
-               bt_stream *stream);
+               const bt_stream *stream);
 
 extern void bt_message_stream_activity_end_set_default_clock_snapshot_state(
                bt_message *msg,
index 339c819e087e7ec6a995ca7c9804cba0fe5d84fb..a93dd595ba3c605078d078aa7e5194851901d09f 100644 (file)
@@ -34,7 +34,7 @@ extern "C" {
 extern
 bt_message *bt_message_stream_beginning_create(
                bt_self_message_iterator *message_iterator,
-               bt_stream *stream);
+               const bt_stream *stream);
 
 extern bt_stream *bt_message_stream_beginning_borrow_stream(
                bt_message *message);
index a9865d42ddcdd9dcc944800898d836f2b4d45a4e..f78f6f59c426ac875736769d49aabe98b3da9e02 100644 (file)
@@ -34,7 +34,7 @@ extern "C" {
 extern
 bt_message *bt_message_stream_end_create(
                bt_self_message_iterator *message_iterator,
-               bt_stream *stream);
+               const bt_stream *stream);
 
 extern bt_stream *bt_message_stream_end_borrow_stream(
                bt_message *message);
index 54c35a05b98846de4d41579ecd11364e684eb5c9..2db26decb1ec0a4e707b0605e4fee4037e97a04a 100644 (file)
@@ -38,7 +38,7 @@
 extern "C" {
 #endif
 
-extern bt_packet *bt_packet_create(bt_stream *stream);
+extern bt_packet *bt_packet_create(const bt_stream *stream);
 
 extern bt_stream *bt_packet_borrow_stream(bt_packet *packet);
 
index 9393f6caa6523bcc26d9fe0b96e82c38f6334703..78b30e45b9f82fc2dfe22aed113fe772b7ac0b2b 100644 (file)
@@ -193,20 +193,20 @@ borrow_discarded_items_message_default_end_clock_snapshot_const(
 
 struct bt_message *bt_message_discarded_events_create(
                struct bt_self_message_iterator *message_iterator,
-               struct bt_stream *stream)
+               const struct bt_stream *stream)
 {
        return create_discarded_items_message(message_iterator,
-               BT_MESSAGE_TYPE_DISCARDED_EVENTS, stream,
+               BT_MESSAGE_TYPE_DISCARDED_EVENTS, (void *) stream,
                false, 0, 0);
 }
 
 struct bt_message *bt_message_discarded_events_create_with_default_clock_snapshots(
                struct bt_self_message_iterator *message_iterator,
-               struct bt_stream *stream, uint64_t beginning_raw_value,
+               const struct bt_stream *stream, uint64_t beginning_raw_value,
                uint64_t end_raw_value)
 {
        return create_discarded_items_message(message_iterator,
-               BT_MESSAGE_TYPE_DISCARDED_EVENTS, stream,
+               BT_MESSAGE_TYPE_DISCARDED_EVENTS, (void *) stream,
                true, beginning_raw_value, end_raw_value);
 }
 
@@ -265,20 +265,20 @@ enum bt_property_availability bt_message_discarded_events_get_count(
 
 struct bt_message *bt_message_discarded_packets_create(
                struct bt_self_message_iterator *message_iterator,
-               struct bt_stream *stream)
+               const struct bt_stream *stream)
 {
        return create_discarded_items_message(message_iterator,
-               BT_MESSAGE_TYPE_DISCARDED_PACKETS, stream,
+               BT_MESSAGE_TYPE_DISCARDED_PACKETS, (void *) stream,
                false, 0, 0);
 }
 
 struct bt_message *bt_message_discarded_packets_create_with_default_clock_snapshots(
                struct bt_self_message_iterator *message_iterator,
-               struct bt_stream *stream, uint64_t beginning_raw_value,
+               const struct bt_stream *stream, uint64_t beginning_raw_value,
                uint64_t end_raw_value)
 {
        return create_discarded_items_message(message_iterator,
-               BT_MESSAGE_TYPE_DISCARDED_PACKETS, stream,
+               BT_MESSAGE_TYPE_DISCARDED_PACKETS, (void *) stream,
                true, beginning_raw_value, end_raw_value);
 }
 
index b6517f82c3ea070340351e8554a532273f5ab475..2b4b4ba8d090fd59be141139bfb8766293be3f50 100644 (file)
@@ -76,12 +76,14 @@ end:
 
 struct bt_message *bt_message_event_create(
                struct bt_self_message_iterator *self_msg_iter,
-               struct bt_event_class *event_class,
-               struct bt_packet *packet)
+               const struct bt_event_class *c_event_class,
+               const struct bt_packet *c_packet)
 {
        struct bt_self_component_port_input_message_iterator *msg_iter =
                (void *) self_msg_iter;
        struct bt_message_event *message = NULL;
+       struct bt_event_class *event_class = (void *) c_event_class;
+       struct bt_packet *packet = (void *) c_packet;
        struct bt_event *event;
 
        BT_ASSERT_PRE_NON_NULL(msg_iter, "Message iterator");
index f2828d1cf7740d0df30800ed0da03b606a652ca8..ada6dc67fe2d75a187e4ace3be1129349cf836c2 100644 (file)
@@ -51,7 +51,7 @@ void bt_message_inactivity_destroy(struct bt_object *obj)
 
 struct bt_message *bt_message_inactivity_create(
                struct bt_self_message_iterator *self_msg_iter,
-               struct bt_clock_class *default_clock_class)
+               const struct bt_clock_class *default_clock_class)
 {
        struct bt_self_component_port_input_message_iterator *msg_iter =
                (void *) self_msg_iter;
@@ -72,7 +72,8 @@ struct bt_message *bt_message_inactivity_create(
                BT_MESSAGE_TYPE_INACTIVITY,
                bt_message_inactivity_destroy, NULL);
        ret_msg = &message->parent;
-       message->default_cs = bt_clock_snapshot_create(default_clock_class);
+       message->default_cs = bt_clock_snapshot_create(
+               (void *) default_clock_class);
        if (!message->default_cs) {
                goto error;
        }
index 32ce5698091daa10d67d569f290af546f89c470d..adf64950a5e509652d3850096015ac3a8e2275e1 100644 (file)
@@ -117,25 +117,25 @@ end:
 
 struct bt_message *bt_message_packet_beginning_create(
                struct bt_self_message_iterator *self_msg_iter,
-               struct bt_packet *packet)
+               const struct bt_packet *packet)
 {
        struct bt_self_component_port_input_message_iterator *msg_iter =
                (void *) self_msg_iter;
 
        BT_ASSERT_PRE_NON_NULL(msg_iter, "Message iterator");
-       return bt_message_packet_create(msg_iter, packet,
+       return bt_message_packet_create(msg_iter, (void *) packet,
                &msg_iter->graph->packet_begin_msg_pool);
 }
 
 struct bt_message *bt_message_packet_end_create(
                struct bt_self_message_iterator *self_msg_iter,
-               struct bt_packet *packet)
+               const struct bt_packet *packet)
 {
        struct bt_self_component_port_input_message_iterator *msg_iter =
                (void *) self_msg_iter;
 
        BT_ASSERT_PRE_NON_NULL(msg_iter, "Message iterator");
-       return bt_message_packet_create(msg_iter, packet,
+       return bt_message_packet_create(msg_iter, (void *) packet,
                &msg_iter->graph->packet_end_msg_pool);
 }
 
index fcee3dd1d4a26812dcb6063b57dd98be36eb8adc..ccbe240a812a938ca6ae09ebe1df5ead54195b72 100644 (file)
@@ -102,17 +102,17 @@ error:
 
 struct bt_message *bt_message_stream_activity_beginning_create(
                struct bt_self_message_iterator *self_msg_iter,
-               struct bt_stream *stream)
+               const struct bt_stream *stream)
 {
-       return create_stream_activity_message(self_msg_iter, stream,
+       return create_stream_activity_message(self_msg_iter, (void *) stream,
                BT_MESSAGE_TYPE_STREAM_ACTIVITY_BEGINNING);
 }
 
 struct bt_message *bt_message_stream_activity_end_create(
                struct bt_self_message_iterator *self_msg_iter,
-               struct bt_stream *stream)
+               const struct bt_stream *stream)
 {
-       return create_stream_activity_message(self_msg_iter, stream,
+       return create_stream_activity_message(self_msg_iter, (void *) stream,
                BT_MESSAGE_TYPE_STREAM_ACTIVITY_END);
 }
 
index 212e6482f805e016111bf597c5cf21551e742214..ec6cd8cb27b5a78c67eb24471d4ef5d9677fc32f 100644 (file)
@@ -86,17 +86,17 @@ error:
 
 struct bt_message *bt_message_stream_beginning_create(
                struct bt_self_message_iterator *self_msg_iter,
-               struct bt_stream *stream)
+               const struct bt_stream *stream)
 {
-       return create_stream_message(self_msg_iter, stream,
+       return create_stream_message(self_msg_iter, (void *) stream,
                BT_MESSAGE_TYPE_STREAM_BEGINNING);
 }
 
 struct bt_message *bt_message_stream_end_create(
                struct bt_self_message_iterator *self_msg_iter,
-               struct bt_stream *stream)
+               const struct bt_stream *stream)
 {
-       return create_stream_message(self_msg_iter, stream,
+       return create_stream_message(self_msg_iter, (void *) stream,
                BT_MESSAGE_TYPE_STREAM_END);
 }
 
index 792b3fc08bd7ebfcdcd5b22d228a5754339d7cf3..def5e7bcc49624f16ffb6a6eb6ed71a6a4142a69 100644 (file)
@@ -44,7 +44,8 @@ void bt_clock_snapshot_destroy(struct bt_clock_snapshot *clock_snapshot)
 }
 
 BT_HIDDEN
-struct bt_clock_snapshot *bt_clock_snapshot_new(struct bt_clock_class *clock_class)
+struct bt_clock_snapshot *bt_clock_snapshot_new(
+               struct bt_clock_class *clock_class)
 {
        struct bt_clock_snapshot *ret = NULL;
 
@@ -68,7 +69,8 @@ end:
 }
 
 BT_HIDDEN
-struct bt_clock_snapshot *bt_clock_snapshot_create(struct bt_clock_class *clock_class)
+struct bt_clock_snapshot *bt_clock_snapshot_create(
+               struct bt_clock_class *clock_class)
 {
        struct bt_clock_snapshot *clock_snapshot = NULL;
 
@@ -135,7 +137,8 @@ void bt_clock_snapshot_recycle(struct bt_clock_snapshot *clock_snapshot)
        bt_object_put_ref(clock_class);
 }
 
-uint64_t bt_clock_snapshot_get_value(const struct bt_clock_snapshot *clock_snapshot)
+uint64_t bt_clock_snapshot_get_value(
+               const struct bt_clock_snapshot *clock_snapshot)
 {
        BT_ASSERT_PRE_NON_NULL(clock_snapshot, "Clock snapshot");
        BT_ASSERT_PRE(clock_snapshot->is_set,
index f3e27dd2a266efed249d89d119563cebd339d4db..cab9f89cef36b639f48dc766b3671bce2c012ffb 100644 (file)
@@ -265,9 +265,10 @@ end:
        return packet;
 }
 
-struct bt_packet *bt_packet_create(struct bt_stream *stream)
+struct bt_packet *bt_packet_create(const struct bt_stream *c_stream)
 {
        struct bt_packet *packet = NULL;
+       struct bt_stream *stream = (void *) c_stream;
 
        BT_ASSERT_PRE_NON_NULL(stream, "Stream");
        packet = bt_object_pool_create_object(&stream->packet_pool);
This page took 0.034038 seconds and 4 git commands to generate.