summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
4237f1f)
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:
extern bt_message *bt_message_discarded_events_create(
bt_self_message_iterator *message_iterator,
extern bt_message *bt_message_discarded_events_create(
bt_self_message_iterator *message_iterator,
+ const bt_stream *stream);
extern bt_message *bt_message_discarded_events_create_with_default_clock_snapshots(
bt_self_message_iterator *message_iterator,
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(
uint64_t end_raw_value);
extern bt_stream *bt_message_discarded_events_borrow_stream(
extern bt_message *bt_message_discarded_packets_create(
bt_self_message_iterator *message_iterator,
extern bt_message *bt_message_discarded_packets_create(
bt_self_message_iterator *message_iterator,
+ const bt_stream *stream);
extern bt_message *bt_message_discarded_packets_create_with_default_clock_snapshots(
bt_self_message_iterator *message_iterator,
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(
uint64_t end_raw_value);
extern bt_stream *bt_message_discarded_packets_borrow_stream(
extern
bt_message *bt_message_event_create(
bt_self_message_iterator *message_iterator,
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);
extern bt_event *bt_message_event_borrow_event(
bt_message *message);
extern
bt_message *bt_message_inactivity_create(
bt_self_message_iterator *message_iterator,
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);
extern void bt_message_inactivity_set_default_clock_snapshot(
bt_message *msg, uint64_t raw_value);
extern
bt_message *bt_message_packet_beginning_create(
bt_self_message_iterator *message_iterator,
extern
bt_message *bt_message_packet_beginning_create(
bt_self_message_iterator *message_iterator,
+ const bt_packet *packet);
extern bt_packet *bt_message_packet_beginning_borrow_packet(
bt_message *message);
extern bt_packet *bt_message_packet_beginning_borrow_packet(
bt_message *message);
extern
bt_message *bt_message_packet_end_create(
bt_self_message_iterator *message_iterator,
extern
bt_message *bt_message_packet_end_create(
bt_self_message_iterator *message_iterator,
+ const bt_packet *packet);
extern bt_packet *bt_message_packet_end_borrow_packet(
bt_message *message);
extern bt_packet *bt_message_packet_end_borrow_packet(
bt_message *message);
extern bt_message *bt_message_stream_activity_beginning_create(
bt_self_message_iterator *message_iterator,
extern bt_message *bt_message_stream_activity_beginning_create(
bt_self_message_iterator *message_iterator,
+ const bt_stream *stream);
extern bt_stream *bt_message_stream_activity_beginning_borrow_stream(
bt_message *message);
extern bt_stream *bt_message_stream_activity_beginning_borrow_stream(
bt_message *message);
extern bt_message *bt_message_stream_activity_end_create(
bt_self_message_iterator *message_iterator,
extern bt_message *bt_message_stream_activity_end_create(
bt_self_message_iterator *message_iterator,
+ const bt_stream *stream);
extern void bt_message_stream_activity_end_set_default_clock_snapshot_state(
bt_message *msg,
extern void bt_message_stream_activity_end_set_default_clock_snapshot_state(
bt_message *msg,
extern
bt_message *bt_message_stream_beginning_create(
bt_self_message_iterator *message_iterator,
extern
bt_message *bt_message_stream_beginning_create(
bt_self_message_iterator *message_iterator,
+ const bt_stream *stream);
extern bt_stream *bt_message_stream_beginning_borrow_stream(
bt_message *message);
extern bt_stream *bt_message_stream_beginning_borrow_stream(
bt_message *message);
extern
bt_message *bt_message_stream_end_create(
bt_self_message_iterator *message_iterator,
extern
bt_message *bt_message_stream_end_create(
bt_self_message_iterator *message_iterator,
+ const bt_stream *stream);
extern bt_stream *bt_message_stream_end_borrow_stream(
bt_message *message);
extern bt_stream *bt_message_stream_end_borrow_stream(
bt_message *message);
-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);
extern bt_stream *bt_packet_borrow_stream(bt_packet *packet);
struct bt_message *bt_message_discarded_events_create(
struct bt_self_message_iterator *message_iterator,
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,
{
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,
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,
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);
}
true, beginning_raw_value, end_raw_value);
}
struct bt_message *bt_message_discarded_packets_create(
struct bt_self_message_iterator *message_iterator,
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,
{
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,
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,
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);
}
true, beginning_raw_value, end_raw_value);
}
struct bt_message *bt_message_event_create(
struct bt_self_message_iterator *self_msg_iter,
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_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");
struct bt_event *event;
BT_ASSERT_PRE_NON_NULL(msg_iter, "Message iterator");
struct bt_message *bt_message_inactivity_create(
struct bt_self_message_iterator *self_msg_iter,
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;
{
struct bt_self_component_port_input_message_iterator *msg_iter =
(void *) self_msg_iter;
BT_MESSAGE_TYPE_INACTIVITY,
bt_message_inactivity_destroy, NULL);
ret_msg = &message->parent;
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;
}
if (!message->default_cs) {
goto error;
}
struct bt_message *bt_message_packet_beginning_create(
struct bt_self_message_iterator *self_msg_iter,
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");
{
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,
&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");
{
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);
}
&msg_iter->graph->packet_end_msg_pool);
}
struct bt_message *bt_message_stream_activity_beginning_create(
struct bt_self_message_iterator *self_msg_iter,
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,
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);
}
BT_MESSAGE_TYPE_STREAM_ACTIVITY_END);
}
struct bt_message *bt_message_stream_beginning_create(
struct bt_self_message_iterator *self_msg_iter,
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,
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);
}
BT_MESSAGE_TYPE_STREAM_END);
}
-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;
{
struct bt_clock_snapshot *ret = NULL;
-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;
{
struct bt_clock_snapshot *clock_snapshot = NULL;
bt_object_put_ref(clock_class);
}
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,
{
BT_ASSERT_PRE_NON_NULL(clock_snapshot, "Clock snapshot");
BT_ASSERT_PRE(clock_snapshot->is_set,
-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_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);
BT_ASSERT_PRE_NON_NULL(stream, "Stream");
packet = bt_object_pool_create_object(&stream->packet_pool);