X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=src%2Flib%2Fgraph%2Fcomponent.h;h=f12ca3b1aff173de1b623108a56ad31ad7af311f;hb=1778c2a4134647150b199b2b57130817144446b0;hp=4125453979bb0dc8e6e3ff66f3953f3ef47a3b7e;hpb=0235b0db7de5bcacdb3650c92461f2ce5eb2143d;p=babeltrace.git diff --git a/src/lib/graph/component.h b/src/lib/graph/component.h index 41254539..f12ca3b1 100644 --- a/src/lib/graph/component.h +++ b/src/lib/graph/component.h @@ -22,6 +22,11 @@ #include "component-class.h" #include "port.h" +#define BT_ASSERT_PRE_OUTPUT_PORT_NAME_UNIQUE(comp, name) \ + BT_ASSERT_PRE("output-port-is-unique", \ + bt_component_port_name_is_unique(comp->output_ports, name), \ + "Output port name is not unique: name=\"%s\", %![comp-]c", name, comp); + typedef void (*bt_component_destroy_listener_func)( struct bt_component *class, void *data); @@ -80,36 +85,47 @@ void bt_component_set_graph(struct bt_component *component, struct bt_graph *graph); BT_HIDDEN -uint64_t bt_component_get_input_port_count(const struct bt_component *comp); +uint64_t bt_component_get_input_port_count(const struct bt_component *comp, + const char *api_func); BT_HIDDEN -uint64_t bt_component_get_output_port_count(const struct bt_component *comp); +uint64_t bt_component_get_output_port_count(const struct bt_component *comp, + const char *api_func); BT_HIDDEN struct bt_port_input *bt_component_borrow_input_port_by_index( - struct bt_component *comp, uint64_t index); + struct bt_component *comp, uint64_t index, + const char *api_func); BT_HIDDEN struct bt_port_output *bt_component_borrow_output_port_by_index( - struct bt_component *comp, uint64_t index); + struct bt_component *comp, uint64_t index, + const char *api_func); BT_HIDDEN struct bt_port_input *bt_component_borrow_input_port_by_name( - struct bt_component *comp, const char *name); + struct bt_component *comp, const char *name, + const char *api_func); BT_HIDDEN struct bt_port_output *bt_component_borrow_output_port_by_name( - struct bt_component *comp, const char *name); + struct bt_component *comp, const char *name, + const char *api_func); BT_HIDDEN enum bt_self_component_add_port_status bt_component_add_input_port( struct bt_component *component, const char *name, - void *user_data, struct bt_port **port); + void *user_data, struct bt_port **port, + const char *api_func); BT_HIDDEN enum bt_self_component_add_port_status bt_component_add_output_port( struct bt_component *component, const char *name, - void *user_data, struct bt_port **port); + void *user_data, struct bt_port **port, + const char *api_func); + +BT_HIDDEN +bool bt_component_port_name_is_unique(GPtrArray *ports, const char *name); BT_HIDDEN void bt_component_remove_port(struct bt_component *component,