Update notification iterator's "init" function signature
[babeltrace.git] / include / babeltrace / component / component-internal.h
index 3915cd836545b3a65205226a71574eb51e1c0ff2..744fb0d31ced6122c7f8b0a1228308fb82c026e1 100644 (file)
@@ -30,7 +30,7 @@
 #include <babeltrace/babeltrace-internal.h>
 #include <babeltrace/component/component.h>
 #include <babeltrace/component/component-class-internal.h>
-#include <babeltrace/component/component-port-internal.h>
+#include <babeltrace/component/port-internal.h>
 #include <babeltrace/object-internal.h>
 #include <glib.h>
 #include <stdio.h>
@@ -43,56 +43,85 @@ struct bt_component {
        struct bt_component_class *class;
        GString *name;
 
-       /**
+       /*
         * Internal destroy function specific to a source, filter, or
         * sink component object.
         */
-       bt_component_class_destroy_method destroy;
+       void (*destroy)(struct bt_component *);
 
-       /** User-defined data */
+       /* User-defined data */
        void *user_data;
 
-       /**
+       /*
         * Used to protect operations which may only be used during
         * a component's initialization.
         */
        bool initializing;
+
+       /* Input and output ports (weak references) */
+       GPtrArray *input_ports;
+       GPtrArray *output_ports;
 };
 
+static inline
+struct bt_component *bt_component_from_private(
+               struct bt_private_component *private_component)
+{
+       return (void *) private_component;
+}
+
+static inline
+struct bt_private_component *bt_private_component_from_component(
+               struct bt_component *component)
+{
+       return (void *) component;
+}
+
 BT_HIDDEN
-enum bt_component_status bt_component_init(struct bt_component *component,
-               bt_component_class_destroy_method destroy);
+enum bt_component_status bt_component_accept_port_connection(
+               struct bt_component *component, struct bt_port *self_port,
+               struct bt_port *other_port);
 
 BT_HIDDEN
-struct bt_notification_iterator *bt_component_create_iterator(
-               struct bt_component *component, void *init_method_data);
+void bt_component_port_disconnected(struct bt_component *comp,
+               struct bt_port *port);
 
 BT_HIDDEN
 void bt_component_set_graph(struct bt_component *component,
                struct bt_graph *graph);
 
 BT_HIDDEN
-int bt_component_init_input_ports(struct bt_component *component,
-               GPtrArray **input_ports);
+uint64_t bt_component_get_input_port_count(struct bt_component *comp);
 
 BT_HIDDEN
-int bt_component_init_output_ports(struct bt_component *component,
-               GPtrArray **output_ports);
+uint64_t bt_component_get_output_port_count(struct bt_component *comp);
 
 BT_HIDDEN
-struct bt_port *bt_component_get_port(GPtrArray *ports, const char *name);
+struct bt_port *bt_component_get_input_port_at_index(struct bt_component *comp,
+               int index);
 
 BT_HIDDEN
-struct bt_port *bt_component_get_port_at_index(GPtrArray *ports, int index);
+struct bt_port *bt_component_get_output_port_at_index(struct bt_component *comp,
+               int index);
 
 BT_HIDDEN
-struct bt_port *bt_component_add_port(
-               struct bt_component *component,GPtrArray *ports,
-               enum bt_port_type port_type, const char *name);
+struct bt_port *bt_component_get_input_port(struct bt_component *comp,
+               const char *name);
 
 BT_HIDDEN
-enum bt_component_status bt_component_remove_port(
-               struct bt_component *component, GPtrArray *ports,
+struct bt_port *bt_component_get_output_port(struct bt_component *comp,
                const char *name);
 
+BT_HIDDEN
+struct bt_port *bt_component_add_input_port(
+               struct bt_component *component, const char *name);
+
+BT_HIDDEN
+struct bt_port *bt_component_add_output_port(
+               struct bt_component *component, const char *name);
+
+BT_HIDDEN
+enum bt_component_status bt_component_remove_port(
+               struct bt_component *component, struct bt_port *port);
+
 #endif /* BABELTRACE_COMPONENT_COMPONENT_INTERNAL_H */
This page took 0.024764 seconds and 4 git commands to generate.