trimmer_comp->log_level = bt_component_get_logging_level(
bt_self_component_as_component(self_comp));
trimmer_comp->self_comp = self_comp;
trimmer_comp->log_level = bt_component_get_logging_level(
bt_self_component_as_component(self_comp));
trimmer_comp->self_comp = self_comp;
add_port_status = bt_self_component_filter_add_input_port(
self_comp_flt, in_port_name, NULL, NULL);
add_port_status = bt_self_component_filter_add_input_port(
self_comp_flt, in_port_name, NULL, NULL);
bt_self_message_iterator *self_msg_iter,
bt_self_message_iterator_configuration *config,
bt_self_message_iterator *self_msg_iter,
bt_self_message_iterator_configuration *config,
bt_self_component_port_input_message_iterator_create_from_message_iterator_status
msg_iter_status;
struct trimmer_iterator *trimmer_it;
trimmer_it = g_new0(struct trimmer_iterator, 1);
if (!trimmer_it) {
bt_self_component_port_input_message_iterator_create_from_message_iterator_status
msg_iter_status;
struct trimmer_iterator *trimmer_it;
trimmer_it = g_new0(struct trimmer_iterator, 1);
if (!trimmer_it) {
bt_self_component_port_input_message_iterator_create_from_message_iterator(
self_msg_iter,
bt_self_component_filter_borrow_input_port_by_name(
bt_self_component_port_input_message_iterator_create_from_message_iterator(
self_msg_iter,
bt_self_component_filter_borrow_input_port_by_name(
- self_comp, in_port_name), &trimmer_it->upstream_iter);
+ trimmer_it->trimmer_comp->self_comp_filter, in_port_name),
+ &trimmer_it->upstream_iter);
if (msg_iter_status != BT_SELF_COMPONENT_PORT_INPUT_MESSAGE_ITERATOR_CREATE_FROM_MESSAGE_ITERATOR_STATUS_OK) {
status = (int) msg_iter_status;
goto error;
if (msg_iter_status != BT_SELF_COMPONENT_PORT_INPUT_MESSAGE_ITERATOR_CREATE_FROM_MESSAGE_ITERATOR_STATUS_OK) {
status = (int) msg_iter_status;
goto error;
trimmer_it->self_msg_iter = self_msg_iter;
bt_self_message_iterator_set_data(self_msg_iter, trimmer_it);
trimmer_it->self_msg_iter = self_msg_iter;
bt_self_message_iterator_set_data(self_msg_iter, trimmer_it);
status = (int) bt_self_component_port_input_message_iterator_can_seek_beginning(
trimmer_it->upstream_iter, &can_seek);
status = (int) bt_self_component_port_input_message_iterator_can_seek_beginning(
trimmer_it->upstream_iter, &can_seek);
if (status < 0) {
BT_COMP_LOGE_APPEND_CAUSE(trimmer_comp->self_comp,
"Cannot make upstream message iterator initially seek its beginning.");
if (status < 0) {
BT_COMP_LOGE_APPEND_CAUSE(trimmer_comp->self_comp,
"Cannot make upstream message iterator initially seek its beginning.");
if (!can_seek) {
BT_COMP_LOGE_APPEND_CAUSE(trimmer_comp->self_comp,
"Cannot make upstream message iterator initially seek its beginning.");
if (!can_seek) {
BT_COMP_LOGE_APPEND_CAUSE(trimmer_comp->self_comp,
"Cannot make upstream message iterator initially seek its beginning.");
if (status < 0) {
BT_COMP_LOGE_APPEND_CAUSE(trimmer_comp->self_comp,
"Cannot make upstream message iterator initially seek: seek-ns-from-origin=%" PRId64,
if (status < 0) {
BT_COMP_LOGE_APPEND_CAUSE(trimmer_comp->self_comp,
"Cannot make upstream message iterator initially seek: seek-ns-from-origin=%" PRId64,
BT_COMP_LOGE_APPEND_CAUSE(trimmer_comp->self_comp,
"Cannot make upstream message iterator initially seek: seek-ns-from-origin=%" PRId64,
trimmer_it->begin.ns_from_origin);
BT_COMP_LOGE_APPEND_CAUSE(trimmer_comp->self_comp,
"Cannot make upstream message iterator initially seek: seek-ns-from-origin=%" PRId64,
trimmer_it->begin.ns_from_origin);
end_stream(struct trimmer_iterator *trimmer_it,
struct trimmer_iterator_stream_state *sstate)
{
end_stream(struct trimmer_iterator *trimmer_it,
struct trimmer_iterator_stream_state *sstate)
{
- bt_component_class_message_iterator_next_method_status status =
- BT_COMPONENT_CLASS_MESSAGE_ITERATOR_NEXT_METHOD_STATUS_OK;
+ bt_message_iterator_class_next_method_status status =
+ BT_MESSAGE_ITERATOR_CLASS_NEXT_METHOD_STATUS_OK;
ret = clock_raw_value_from_ns_from_origin(clock_class,
trimmer_it->end.ns_from_origin, &raw_value);
if (ret) {
ret = clock_raw_value_from_ns_from_origin(clock_class,
trimmer_it->end.ns_from_origin, &raw_value);
if (ret) {
- bt_component_class_message_iterator_next_method_status status =
- BT_COMPONENT_CLASS_MESSAGE_ITERATOR_NEXT_METHOD_STATUS_OK;
+ bt_message_iterator_class_next_method_status status =
+ BT_MESSAGE_ITERATOR_CLASS_NEXT_METHOD_STATUS_OK;
create_stream_state_entry(
struct trimmer_iterator *trimmer_it,
const struct bt_stream *stream,
struct trimmer_iterator_stream_state **stream_state)
{
struct trimmer_comp *trimmer_comp = trimmer_it->trimmer_comp;
create_stream_state_entry(
struct trimmer_iterator *trimmer_it,
const struct bt_stream *stream,
struct trimmer_iterator_stream_state **stream_state)
{
struct trimmer_comp *trimmer_comp = trimmer_it->trimmer_comp;
"stream-name=\"%s\"",
stream, bt_stream_get_id(stream),
bt_stream_get_name(stream));
"stream-name=\"%s\"",
stream, bt_stream_get_id(stream),
bt_stream_get_name(stream));
"stream-name=\"%s\"",
stream, bt_stream_get_id(stream),
bt_stream_get_name(stream));
"stream-name=\"%s\"",
stream, bt_stream_get_id(stream),
bt_stream_get_name(stream));
"stream-name=\"%s\"",
stream, bt_stream_get_id(stream),
bt_stream_get_name(stream));
"stream-name=\"%s\"",
stream, bt_stream_get_id(stream),
bt_stream_get_name(stream));
"stream-name=\"%s\"",
stream, bt_stream_get_id(stream),
bt_stream_get_name(stream));
"stream-name=\"%s\"",
stream, bt_stream_get_id(stream),
bt_stream_get_name(stream));
"stream-name=\"%s\"",
stream, bt_stream_get_id(stream),
bt_stream_get_name(stream));
"stream-name=\"%s\"",
stream, bt_stream_get_id(stream),
bt_stream_get_name(stream));
handle_message_with_stream(
struct trimmer_iterator *trimmer_it, const bt_message *msg,
const struct bt_stream *stream, const int64_t *ns_from_origin,
bool *reached_end)
{
handle_message_with_stream(
struct trimmer_iterator *trimmer_it, const bt_message *msg,
const struct bt_stream *stream, const int64_t *ns_from_origin,
bool *reached_end)
{
- bt_component_class_message_iterator_next_method_status status =
- BT_COMPONENT_CLASS_MESSAGE_ITERATOR_NEXT_METHOD_STATUS_OK;
+ bt_message_iterator_class_next_method_status status =
+ BT_MESSAGE_ITERATOR_CLASS_NEXT_METHOD_STATUS_OK;
bt_message_type msg_type = bt_message_get_type(msg);
int ret;
struct trimmer_iterator_stream_state *sstate = NULL;
bt_message_type msg_type = bt_message_get_type(msg);
int ret;
struct trimmer_iterator_stream_state *sstate = NULL;
ret = clock_raw_value_from_ns_from_origin(clock_class,
trimmer_it->end.ns_from_origin, &end_raw_value);
if (ret) {
ret = clock_raw_value_from_ns_from_origin(clock_class,
trimmer_it->end.ns_from_origin, &end_raw_value);
if (ret) {
/* Learn about this stream. */
status = create_stream_state_entry(trimmer_it, stream, &sstate);
/* Learn about this stream. */
status = create_stream_state_entry(trimmer_it, stream, &sstate);
const bt_stream *stream = NULL;
int64_t ns_from_origin = INT64_MIN;
bool has_ns_from_origin = false;
const bt_stream *stream = NULL;
int64_t ns_from_origin = INT64_MIN;
bool has_ns_from_origin = false;
/* Retrieve the message's time */
ret = get_msg_ns_from_origin(msg, &ns_from_origin, &has_ns_from_origin);
if (G_UNLIKELY(ret)) {
/* Retrieve the message's time */
ret = get_msg_ns_from_origin(msg, &ns_from_origin, &has_ns_from_origin);
if (G_UNLIKELY(ret)) {
struct trimmer_iterator *trimmer_it,
bt_message_array_const msgs, uint64_t capacity,
uint64_t *count)
{
struct trimmer_iterator *trimmer_it,
bt_message_array_const msgs, uint64_t capacity,
uint64_t *count)
{
- bt_component_class_message_iterator_next_method_status status =
- BT_COMPONENT_CLASS_MESSAGE_ITERATOR_NEXT_METHOD_STATUS_OK;
+ bt_message_iterator_class_next_method_status status =
+ BT_MESSAGE_ITERATOR_CLASS_NEXT_METHOD_STATUS_OK;
if (g_queue_is_empty(trimmer_it->output_messages)) {
trimmer_it->state = TRIMMER_ITERATOR_STATE_ENDED;
if (g_queue_is_empty(trimmer_it->output_messages)) {
trimmer_it->state = TRIMMER_ITERATOR_STATE_ENDED;
state_trim(struct trimmer_iterator *trimmer_it,
bt_message_array_const msgs, uint64_t capacity,
uint64_t *count)
{
state_trim(struct trimmer_iterator *trimmer_it,
bt_message_array_const msgs, uint64_t capacity,
uint64_t *count)
{
- bt_component_class_message_iterator_next_method_status status =
- BT_COMPONENT_CLASS_MESSAGE_ITERATOR_NEXT_METHOD_STATUS_OK;
+ bt_message_iterator_class_next_method_status status =
+ BT_MESSAGE_ITERATOR_CLASS_NEXT_METHOD_STATUS_OK;
while (g_queue_is_empty(trimmer_it->output_messages)) {
status = (int) bt_self_component_port_input_message_iterator_next(
trimmer_it->upstream_iter, &my_msgs, &my_count);
while (g_queue_is_empty(trimmer_it->output_messages)) {
status = (int) bt_self_component_port_input_message_iterator_next(
trimmer_it->upstream_iter, &my_msgs, &my_count);
- if (G_UNLIKELY(status != BT_COMPONENT_CLASS_MESSAGE_ITERATOR_NEXT_METHOD_STATUS_OK)) {
- if (status == BT_COMPONENT_CLASS_MESSAGE_ITERATOR_NEXT_METHOD_STATUS_END) {
+ if (G_UNLIKELY(status != BT_MESSAGE_ITERATOR_CLASS_NEXT_METHOD_STATUS_OK)) {
+ if (status == BT_MESSAGE_ITERATOR_CLASS_NEXT_METHOD_STATUS_END) {
bt_self_message_iterator *self_msg_iter,
bt_message_array_const msgs, uint64_t capacity,
uint64_t *count)
{
struct trimmer_iterator *trimmer_it =
bt_self_message_iterator_get_data(self_msg_iter);
bt_self_message_iterator *self_msg_iter,
bt_message_array_const msgs, uint64_t capacity,
uint64_t *count)
{
struct trimmer_iterator *trimmer_it =
bt_self_message_iterator_get_data(self_msg_iter);
- bt_component_class_message_iterator_next_method_status status =
- BT_COMPONENT_CLASS_MESSAGE_ITERATOR_NEXT_METHOD_STATUS_OK;
+ bt_message_iterator_class_next_method_status status =
+ BT_MESSAGE_ITERATOR_CLASS_NEXT_METHOD_STATUS_OK;
BT_ASSERT_DBG(trimmer_it);
if (G_LIKELY(trimmer_it->state == TRIMMER_ITERATOR_STATE_TRIM)) {
status = state_trim(trimmer_it, msgs, capacity, count);
BT_ASSERT_DBG(trimmer_it);
if (G_LIKELY(trimmer_it->state == TRIMMER_ITERATOR_STATE_TRIM)) {
status = state_trim(trimmer_it, msgs, capacity, count);
goto end;
}
} else {
switch (trimmer_it->state) {
case TRIMMER_ITERATOR_STATE_SET_BOUNDS_NS_FROM_ORIGIN:
status = state_set_trimmer_iterator_bounds(trimmer_it);
goto end;
}
} else {
switch (trimmer_it->state) {
case TRIMMER_ITERATOR_STATE_SET_BOUNDS_NS_FROM_ORIGIN:
status = state_set_trimmer_iterator_bounds(trimmer_it);
goto end;
}
status = state_trim(trimmer_it, msgs, capacity, count);
goto end;
}
status = state_trim(trimmer_it, msgs, capacity, count);
goto end;
}
status = state_trim(trimmer_it, msgs, capacity, count);
goto end;
}
status = state_trim(trimmer_it, msgs, capacity, count);
case TRIMMER_ITERATOR_STATE_ENDING:
status = state_ending(trimmer_it, msgs, capacity,
count);
case TRIMMER_ITERATOR_STATE_ENDING:
status = state_ending(trimmer_it, msgs, capacity,
count);