lib, bt2: add precondition check for port name unicity
[babeltrace.git] / src / lib / graph / component.h
index 4125453979bb0dc8e6e3ff66f3953f3ef47a3b7e..387996aac4ad5e592a8a35a3ebdbc57101898f2c 100644 (file)
 #include "component-class.h"
 #include "port.h"
 
+#define BT_ASSERT_PRE_INPUT_PORT_NAME_UNIQUE(comp, name) \
+       BT_ASSERT_PRE(bt_component_port_name_is_unique(comp->input_ports, name), \
+               "Input port name is not unique: name=\"%s\", %![comp-]c", name, comp);
+
+#define BT_ASSERT_PRE_OUTPUT_PORT_NAME_UNIQUE(comp, name) \
+       BT_ASSERT_PRE(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);
 
@@ -111,6 +119,9 @@ 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);
 
+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,
                struct bt_port *port);
This page took 0.023505 seconds and 4 git commands to generate.