return ret;
}
-bt_component_class_init_method_status trimmer_init(
+bt_component_class_initialize_method_status trimmer_init(
bt_self_component_filter *self_comp_flt,
+ bt_self_component_filter_configuration *config,
const bt_value *params, void *init_data)
{
int ret;
- bt_component_class_init_method_status status =
- BT_COMPONENT_CLASS_INIT_METHOD_STATUS_OK;
+ bt_component_class_initialize_method_status status =
+ BT_COMPONENT_CLASS_INITIALIZE_METHOD_STATUS_OK;
bt_self_component_add_port_status add_port_status;
struct trimmer_comp *trimmer_comp = create_trimmer_comp();
bt_self_component *self_comp =
bt_self_component_filter_as_self_component(self_comp_flt);
if (!trimmer_comp) {
- status = BT_COMPONENT_CLASS_INIT_METHOD_STATUS_MEMORY_ERROR;
+ status = BT_COMPONENT_CLASS_INITIALIZE_METHOD_STATUS_MEMORY_ERROR;
goto error;
}
self_comp_flt, in_port_name, NULL, NULL);
switch (add_port_status) {
case BT_SELF_COMPONENT_ADD_PORT_STATUS_ERROR:
- status = BT_COMPONENT_CLASS_INIT_METHOD_STATUS_ERROR;
+ status = BT_COMPONENT_CLASS_INITIALIZE_METHOD_STATUS_ERROR;
goto error;
case BT_SELF_COMPONENT_ADD_PORT_STATUS_MEMORY_ERROR:
- status = BT_COMPONENT_CLASS_INIT_METHOD_STATUS_MEMORY_ERROR;
+ status = BT_COMPONENT_CLASS_INITIALIZE_METHOD_STATUS_MEMORY_ERROR;
goto error;
default:
break;
self_comp_flt, "out", NULL, NULL);
switch (add_port_status) {
case BT_SELF_COMPONENT_ADD_PORT_STATUS_ERROR:
- status = BT_COMPONENT_CLASS_INIT_METHOD_STATUS_ERROR;
+ status = BT_COMPONENT_CLASS_INITIALIZE_METHOD_STATUS_ERROR;
goto error;
case BT_SELF_COMPONENT_ADD_PORT_STATUS_MEMORY_ERROR:
- status = BT_COMPONENT_CLASS_INIT_METHOD_STATUS_MEMORY_ERROR;
+ status = BT_COMPONENT_CLASS_INITIALIZE_METHOD_STATUS_MEMORY_ERROR;
goto error;
default:
break;
ret = init_trimmer_comp_from_params(trimmer_comp, params);
if (ret) {
- status = BT_COMPONENT_CLASS_INIT_METHOD_STATUS_ERROR;
+ status = BT_COMPONENT_CLASS_INITIALIZE_METHOD_STATUS_ERROR;
goto error;
}
goto end;
error:
- if (status == BT_COMPONENT_CLASS_INIT_METHOD_STATUS_OK) {
- status = BT_COMPONENT_CLASS_INIT_METHOD_STATUS_ERROR;
+ if (status == BT_COMPONENT_CLASS_INITIALIZE_METHOD_STATUS_OK) {
+ status = BT_COMPONENT_CLASS_INITIALIZE_METHOD_STATUS_ERROR;
}
if (trimmer_comp) {
}
BT_HIDDEN
-bt_component_class_message_iterator_init_method_status trimmer_msg_iter_init(
+bt_component_class_message_iterator_initialize_method_status trimmer_msg_iter_init(
bt_self_message_iterator *self_msg_iter,
+ bt_self_message_iterator_configuration *config,
bt_self_component_filter *self_comp,
bt_self_component_port_output *port)
{
- bt_component_class_message_iterator_init_method_status status;
+ bt_component_class_message_iterator_initialize_method_status status;
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) {
- status = BT_COMPONENT_CLASS_MESSAGE_ITERATOR_INIT_METHOD_STATUS_MEMORY_ERROR;
+ status = BT_COMPONENT_CLASS_MESSAGE_ITERATOR_INITIALIZE_METHOD_STATUS_MEMORY_ERROR;
goto error;
}
trimmer_it->output_messages = g_queue_new();
if (!trimmer_it->output_messages) {
- status = BT_COMPONENT_CLASS_MESSAGE_ITERATOR_INIT_METHOD_STATUS_MEMORY_ERROR;
+ status = BT_COMPONENT_CLASS_MESSAGE_ITERATOR_INITIALIZE_METHOD_STATUS_MEMORY_ERROR;
goto error;
}
g_direct_equal, NULL,
(GDestroyNotify) destroy_trimmer_iterator_stream_state);
if (!trimmer_it->stream_states) {
- status = BT_COMPONENT_CLASS_MESSAGE_ITERATOR_INIT_METHOD_STATUS_MEMORY_ERROR;
+ status = BT_COMPONENT_CLASS_MESSAGE_ITERATOR_INITIALIZE_METHOD_STATUS_MEMORY_ERROR;
goto error;
}
trimmer_it->self_msg_iter = self_msg_iter;
bt_self_message_iterator_set_data(self_msg_iter, trimmer_it);
- status = BT_COMPONENT_CLASS_MESSAGE_ITERATOR_INIT_METHOD_STATUS_OK;
+ status = BT_COMPONENT_CLASS_MESSAGE_ITERATOR_INITIALIZE_METHOD_STATUS_OK;
goto end;
error:
struct trimmer_iterator *trimmer_it)
{
struct trimmer_comp *trimmer_comp = trimmer_it->trimmer_comp;
- bt_component_class_message_iterator_next_method_status status =
- BT_COMPONENT_CLASS_MESSAGE_ITERATOR_NEXT_METHOD_STATUS_OK;
+ bt_component_class_message_iterator_next_method_status status;
BT_ASSERT(trimmer_it->begin.is_set);
if (trimmer_it->begin.is_infinite) {
- if (!bt_self_component_port_input_message_iterator_can_seek_beginning(
- trimmer_it->upstream_iter)) {
+ bt_bool can_seek;
+
+ status = (int) bt_self_component_port_input_message_iterator_can_seek_beginning(
+ trimmer_it->upstream_iter, &can_seek);
+ if (status != BT_COMPONENT_CLASS_MESSAGE_ITERATOR_NEXT_METHOD_STATUS_OK) {
+ if (status < 0) {
+ BT_COMP_LOGE_APPEND_CAUSE(trimmer_comp->self_comp,
+ "Cannot make upstream message iterator initially seek its beginning.");
+ }
+
+ goto end;
+ }
+
+ if (!can_seek) {
BT_COMP_LOGE_APPEND_CAUSE(trimmer_comp->self_comp,
"Cannot make upstream message iterator initially seek its beginning.");
status = BT_COMPONENT_CLASS_MESSAGE_ITERATOR_NEXT_METHOD_STATUS_ERROR;
status = (int) bt_self_component_port_input_message_iterator_seek_beginning(
trimmer_it->upstream_iter);
} else {
- if (!bt_self_component_port_input_message_iterator_can_seek_ns_from_origin(
- trimmer_it->upstream_iter,
- trimmer_it->begin.ns_from_origin)) {
+ bt_bool can_seek;
+
+ status = (int) bt_self_component_port_input_message_iterator_can_seek_ns_from_origin(
+ trimmer_it->upstream_iter, trimmer_it->begin.ns_from_origin,
+ &can_seek);
+
+ if (status != BT_COMPONENT_CLASS_MESSAGE_ITERATOR_NEXT_METHOD_STATUS_OK) {
+ if (status < 0) {
+ 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);
+ }
+
+ goto end;
+ }
+
+ if (!can_seek) {
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);