struct bt_component;
struct bt_notification_iterator;
-extern int bt_component_filter_get_input_port_count(
- struct bt_component *component);
+extern enum bt_component_status bt_component_filter_get_input_port_count(
+ struct bt_component *component, uint64_t *count);
extern struct bt_port *bt_component_filter_get_input_port(
struct bt_component *component, const char *name);
extern struct bt_port *bt_component_filter_get_input_port_at_index(
extern struct bt_port *bt_component_filter_get_default_input_port(
struct bt_component *component);
-extern int bt_component_filter_get_output_port_count(
- struct bt_component *component);
+extern enum bt_component_status bt_component_filter_get_output_port_count(
+ struct bt_component *component, uint64_t *count);
extern struct bt_port *bt_component_filter_get_output_port(
struct bt_component *component, const char *name);
extern struct bt_port *bt_component_filter_get_output_port_at_index(
struct bt_component;
struct bt_notification;
-extern int bt_component_sink_get_input_port_count(
- struct bt_component *component);
+extern enum bt_component_status bt_component_sink_get_input_port_count(
+ struct bt_component *component, uint64_t *count);
extern struct bt_port *bt_component_sink_get_input_port(
struct bt_component *component, const char *name);
extern struct bt_port *bt_component_sink_get_input_port_at_index(
struct bt_component;
struct bt_notification_iterator;
-/* FIXME should return a bt_component_status, same applies for filter and sink. Use uint64_t. */
-extern int bt_component_source_get_output_port_count(
- struct bt_component *component);
+extern enum bt_component_status bt_component_source_get_output_port_count(
+ struct bt_component *component, uint64_t *count);
extern struct bt_port *bt_component_source_get_output_port(
struct bt_component *component, const char *name);
extern struct bt_port *bt_component_source_get_output_port_at_index(
return ret;
}
-int bt_component_filter_get_input_port_count(struct bt_component *component)
+enum bt_component_status bt_component_filter_get_input_port_count(
+ struct bt_component *component, uint64_t *count)
{
- int ret;
+ enum bt_component_status status = BT_COMPONENT_STATUS_OK;
struct bt_component_filter *filter;
- if (!component) {
- ret = -1;
+ if (!component || !count) {
+ status = BT_COMPONENT_STATUS_INVALID;
goto end;
}
if (component->class->type != BT_COMPONENT_CLASS_TYPE_FILTER) {
- ret = -1;
+ status = BT_COMPONENT_STATUS_INVALID;
goto end;
}
filter = container_of(component, struct bt_component_filter, parent);
- ret = filter->input_ports->len;
+ *count = (uint64_t) filter->input_ports->len;
end:
- return ret;
+ return status;
}
struct bt_port *bt_component_filter_get_input_port(
return status;
}
-int bt_component_filter_get_output_port_count(struct bt_component *component)
+enum bt_component_status bt_component_filter_get_output_port_count(
+ struct bt_component *component, uint64_t *count)
{
- int ret;
+ enum bt_component_status status = BT_COMPONENT_STATUS_OK;
struct bt_component_filter *filter;
- if (!component) {
- ret = -1;
+ if (!component || !count) {
+ status = BT_COMPONENT_STATUS_INVALID;
goto end;
}
if (component->class->type != BT_COMPONENT_CLASS_TYPE_FILTER) {
- ret = -1;
+ status = BT_COMPONENT_STATUS_INVALID;
goto end;
}
filter = container_of(component, struct bt_component_filter, parent);
- ret = filter->output_ports->len;
+ *count = (uint64_t) filter->output_ports->len;
end:
- return ret;
+ return status;
}
struct bt_port *bt_component_filter_get_output_port(
}
static
-int get_component_port_counts(struct bt_component *component, int *input_count,
- int *output_count)
+enum bt_component_status get_component_port_counts(
+ struct bt_component *component, uint64_t *input_count,
+ uint64_t *output_count)
{
- int ret = -1;
+ enum bt_component_status ret;
switch (bt_component_get_class_type(component)) {
case BT_COMPONENT_CLASS_TYPE_SOURCE:
- ret = bt_component_source_get_output_port_count(component);
- if (ret < 0) {
+ ret = bt_component_source_get_output_port_count(component,
+ output_count);
+ if (ret != BT_COMPONENT_STATUS_OK) {
goto end;
}
- *output_count = ret;
break;
case BT_COMPONENT_CLASS_TYPE_FILTER:
- ret = bt_component_filter_get_output_port_count(component);
- if (ret < 0) {
+ ret = bt_component_filter_get_output_port_count(component,
+ output_count);
+ if (ret != BT_COMPONENT_STATUS_OK) {
goto end;
}
- *output_count = ret;
- break;
- ret = bt_component_filter_get_input_port_count(component);
- if (ret < 0) {
+ ret = bt_component_filter_get_input_port_count(component,
+ input_count);
+ if (ret != BT_COMPONENT_STATUS_OK) {
goto end;
}
- *input_count = ret;
break;
case BT_COMPONENT_CLASS_TYPE_SINK:
- ret = bt_component_sink_get_input_port_count(component);
- if (ret < 0) {
+ ret = bt_component_sink_get_input_port_count(component,
+ input_count);
+ if (ret != BT_COMPONENT_STATUS_OK) {
goto end;
}
- *input_count = ret;
break;
default:
assert(false);
break;
}
- ret = 0;
+ ret = BT_COMPONENT_STATUS_OK;
end:
return ret;
}
struct bt_component *origin,
struct bt_component *new_component)
{
- int origin_input_port_count = 0;
- int origin_output_port_count = 0;
- int new_input_port_count = 0;
- int new_output_port_count = 0;
+ uint64_t origin_input_port_count = 0;
+ uint64_t origin_output_port_count = 0;
+ uint64_t new_input_port_count = 0;
+ uint64_t new_output_port_count = 0;
enum bt_graph_status status = BT_GRAPH_STATUS_OK;
struct bt_graph *origin_graph = NULL;
struct bt_graph *new_graph = NULL;
}
if (get_component_port_counts(origin, &origin_input_port_count,
- &origin_output_port_count)) {
+ &origin_output_port_count) != BT_COMPONENT_STATUS_OK) {
status = BT_GRAPH_STATUS_INVALID;
goto end;
}
if (get_component_port_counts(new_component, &new_input_port_count,
- &new_output_port_count)) {
+ &new_output_port_count) != BT_COMPONENT_STATUS_OK) {
status = BT_GRAPH_STATUS_INVALID;
goto end;
}
}
*/
-int bt_component_sink_get_input_port_count(struct bt_component *component)
+enum bt_component_status bt_component_sink_get_input_port_count(
+ struct bt_component *component, uint64_t *count)
{
- int ret;
+ enum bt_component_status status = BT_COMPONENT_STATUS_OK;
struct bt_component_sink *sink;
- if (!component) {
- ret = -1;
+ if (!component || !count) {
+ status = BT_COMPONENT_STATUS_INVALID;
goto end;
}
if (component->class->type != BT_COMPONENT_CLASS_TYPE_SINK) {
- ret = -1;
+ status = BT_COMPONENT_STATUS_INVALID;
goto end;
}
sink = container_of(component, struct bt_component_sink, parent);
- ret = sink->input_ports->len;
+ *count = (uint64_t) sink->input_ports->len;
end:
- return ret;
+ return status;
}
struct bt_port *bt_component_sink_get_input_port(
return bt_component_create_iterator(component, init_method_data);
}
-int bt_component_source_get_output_port_count(struct bt_component *component)
+enum bt_component_status bt_component_source_get_output_port_count(
+ struct bt_component *component, uint64_t *count)
{
- int ret;
+ enum bt_component_status status = BT_COMPONENT_STATUS_OK;
struct bt_component_source *source;
- if (!component) {
- ret = -1;
+ if (!component || !count) {
+ status = BT_COMPONENT_STATUS_INVALID;
goto end;
}
if (component->class->type != BT_COMPONENT_CLASS_TYPE_SOURCE) {
- ret = -1;
+ status = BT_COMPONENT_STATUS_INVALID;
goto end;
}
source = container_of(component, struct bt_component_source, parent);
- ret = source->output_ports->len;
+ *count = (uint64_t) source->output_ports->len;
end:
- return ret;
+ return status;
}
struct bt_port *bt_component_source_get_output_port(