lib: graph: add "self" and some "private" APIs
[babeltrace.git] / include / babeltrace / graph / notification-iterator-internal.h
index 2cfad159836e00dab62b653c9038c9895127078d..28c3f8f4ead3439665a023b802b8f67a5d4b1692 100644 (file)
@@ -2,8 +2,6 @@
 #define BABELTRACE_GRAPH_NOTIFICATION_ITERATOR_INTERNAL_H
 
 /*
- * BabelTrace - Notification Iterator Internal
- *
  * Copyright 2015 Jérémie Galarneau <jeremie.galarneau@efficios.com>
  * Copyright 2017 Philippe Proulx <pproulx@efficios.com>
  *
@@ -31,7 +29,6 @@
 #include <babeltrace/graph/connection.h>
 #include <babeltrace/graph/notification.h>
 #include <babeltrace/graph/notification-iterator.h>
-#include <babeltrace/graph/private-connection-private-notification-iterator.h>
 #include <babeltrace/types.h>
 #include <babeltrace/assert-internal.h>
 #include <stdbool.h>
@@ -40,33 +37,22 @@ struct bt_port;
 struct bt_graph;
 
 enum bt_notification_iterator_type {
-       BT_NOTIFICATION_ITERATOR_TYPE_PRIVATE_CONNECTION,
-       BT_NOTIFICATION_ITERATOR_TYPE_OUTPUT_PORT,
-};
-
-enum bt_private_connection_notification_iterator_notif_type {
-       BT_PRIVATE_CONNECTION_NOTIFICATION_ITERATOR_NOTIF_TYPE_EVENT =                  (1U << 0),
-       BT_PRIVATE_CONNECTION_NOTIFICATION_ITERATOR_NOTIF_TYPE_INACTIVITY =             (1U << 1),
-       BT_PRIVATE_CONNECTION_NOTIFICATION_ITERATOR_NOTIF_TYPE_STREAM_BEGIN =           (1U << 2),
-       BT_PRIVATE_CONNECTION_NOTIFICATION_ITERATOR_NOTIF_TYPE_STREAM_END =             (1U << 3),
-       BT_PRIVATE_CONNECTION_NOTIFICATION_ITERATOR_NOTIF_TYPE_PACKET_BEGIN =           (1U << 4),
-       BT_PRIVATE_CONNECTION_NOTIFICATION_ITERATOR_NOTIF_TYPE_PACKET_END =             (1U << 5),
-       BT_PRIVATE_CONNECTION_NOTIFICATION_ITERATOR_NOTIF_TYPE_DISCARDED_EVENTS =       (1U << 6),
-       BT_PRIVATE_CONNECTION_NOTIFICATION_ITERATOR_NOTIF_TYPE_DISCARDED_PACKETS =      (1U << 7),
+       BT_NOTIFICATION_ITERATOR_TYPE_SELF_COMPONENT_PORT_INPUT,
+       BT_NOTIFICATION_ITERATOR_TYPE_PORT_OUTPUT,
 };
 
-enum bt_private_connection_notification_iterator_state {
+enum bt_self_component_port_input_notification_iterator_state {
        /* Iterator is not initialized. */
-       BT_PRIVATE_CONNECTION_NOTIFICATION_ITERATOR_STATE_NON_INITIALIZED,
+       BT_SELF_COMPONENT_PORT_INPUT_NOTIFICATION_ITERATOR_STATE_NON_INITIALIZED,
 
        /* Iterator is active, not at the end yet, and not finalized. */
-       BT_PRIVATE_CONNECTION_NOTIFICATION_ITERATOR_STATE_ACTIVE,
+       BT_SELF_COMPONENT_PORT_INPUT_NOTIFICATION_ITERATOR_STATE_ACTIVE,
 
        /*
         * Iterator is ended, not finalized yet: the "next" method
         * returns BT_NOTIFICATION_ITERATOR_STATUS_END.
         */
-       BT_PRIVATE_CONNECTION_NOTIFICATION_ITERATOR_STATE_ENDED,
+       BT_SELF_COMPONENT_PORT_INPUT_NOTIFICATION_ITERATOR_STATE_ENDED,
 
        /*
         * Iterator is finalized, but not at the end yet. This means
@@ -74,13 +60,13 @@ enum bt_private_connection_notification_iterator_state {
         * before returning the BT_NOTIFICATION_ITERATOR_STATUS_CANCELED
         * status.
         */
-       BT_PRIVATE_CONNECTION_NOTIFICATION_ITERATOR_STATE_FINALIZED,
+       BT_SELF_COMPONENT_PORT_INPUT_NOTIFICATION_ITERATOR_STATE_FINALIZED,
 
        /*
         * Iterator is finalized and ended: the "next" method always
         * returns BT_NOTIFICATION_ITERATOR_STATUS_CANCELED.
         */
-       BT_PRIVATE_CONNECTION_NOTIFICATION_ITERATOR_STATE_FINALIZED_AND_ENDED,
+       BT_SELF_COMPONENT_PORT_INPUT_NOTIFICATION_ITERATOR_STATE_FINALIZED_AND_ENDED,
 };
 
 struct bt_notification_iterator {
@@ -89,7 +75,7 @@ struct bt_notification_iterator {
        GPtrArray *notifs;
 };
 
-struct bt_notification_iterator_private_connection {
+struct bt_self_component_port_input_notification_iterator {
        struct bt_notification_iterator base;
        struct bt_component *upstream_component; /* Weak */
        struct bt_port *upstream_port; /* Weak */
@@ -116,14 +102,14 @@ struct bt_notification_iterator_private_connection {
         */
        GHashTable *stream_states;
 
-       enum bt_private_connection_notification_iterator_state state;
+       enum bt_self_component_port_input_notification_iterator_state state;
        void *user_data;
 };
 
-struct bt_notification_iterator_output_port {
+struct bt_port_output_notification_iterator {
        struct bt_notification_iterator base;
        struct bt_graph *graph; /* Owned by this */
-       struct bt_component *colander; /* Owned by this */
+       struct bt_component_sink *colander; /* Owned by this */
 
        /*
         * Only used temporarily as a bridge between a colander sink and
@@ -132,28 +118,13 @@ struct bt_notification_iterator_output_port {
        uint64_t count;
 };
 
-static inline
-struct bt_private_connection_private_notification_iterator *
-bt_private_connection_private_notification_iterator_from_notification_iterator(
-               struct bt_notification_iterator_private_connection *iterator)
-{
-       return (void *) iterator;
-}
-
-BT_HIDDEN
-enum bt_connection_status bt_private_connection_notification_iterator_create(
-               struct bt_component *upstream_comp,
-               struct bt_port *upstream_port,
-               struct bt_connection *connection,
-               struct bt_notification_iterator_private_connection **iterator);
-
 BT_HIDDEN
-void bt_private_connection_notification_iterator_finalize(
-               struct bt_notification_iterator_private_connection *iterator);
+void bt_self_component_port_input_notification_iterator_finalize(
+               struct bt_self_component_port_input_notification_iterator *iterator);
 
 BT_HIDDEN
-void bt_private_connection_notification_iterator_set_connection(
-               struct bt_notification_iterator_private_connection *iterator,
+void bt_self_component_port_input_notification_iterator_set_connection(
+               struct bt_self_component_port_input_notification_iterator *iterator,
                struct bt_connection *connection);
 
 static inline
@@ -169,32 +140,28 @@ const char *bt_notification_iterator_status_string(
                return "BT_NOTIFICATION_ITERATOR_STATUS_END";
        case BT_NOTIFICATION_ITERATOR_STATUS_OK:
                return "BT_NOTIFICATION_ITERATOR_STATUS_OK";
-       case BT_NOTIFICATION_ITERATOR_STATUS_INVALID:
-               return "BT_NOTIFICATION_ITERATOR_STATUS_INVALID";
        case BT_NOTIFICATION_ITERATOR_STATUS_ERROR:
                return "BT_NOTIFICATION_ITERATOR_STATUS_ERROR";
        case BT_NOTIFICATION_ITERATOR_STATUS_NOMEM:
                return "BT_NOTIFICATION_ITERATOR_STATUS_NOMEM";
-       case BT_NOTIFICATION_ITERATOR_STATUS_UNSUPPORTED:
-               return "BT_NOTIFICATION_ITERATOR_STATUS_UNSUPPORTED";
        default:
                return "(unknown)";
        }
 };
 
 static inline
-const char *bt_private_connection_notification_iterator_state_string(
-               enum bt_private_connection_notification_iterator_state state)
+const char *bt_self_component_port_input_notification_iterator_state_string(
+               enum bt_self_component_port_input_notification_iterator_state state)
 {
        switch (state) {
-       case BT_PRIVATE_CONNECTION_NOTIFICATION_ITERATOR_STATE_ACTIVE:
-               return "BT_PRIVATE_CONNECTION_NOTIFICATION_ITERATOR_STATE_ACTIVE";
-       case BT_PRIVATE_CONNECTION_NOTIFICATION_ITERATOR_STATE_ENDED:
-               return "BT_PRIVATE_CONNECTION_NOTIFICATION_ITERATOR_STATE_ENDED";
-       case BT_PRIVATE_CONNECTION_NOTIFICATION_ITERATOR_STATE_FINALIZED:
-               return "BT_PRIVATE_CONNECTION_NOTIFICATION_ITERATOR_STATE_FINALIZED";
-       case BT_PRIVATE_CONNECTION_NOTIFICATION_ITERATOR_STATE_FINALIZED_AND_ENDED:
-               return "BT_PRIVATE_CONNECTION_NOTIFICATION_ITERATOR_STATE_FINALIZED_AND_ENDED";
+       case BT_SELF_COMPONENT_PORT_INPUT_NOTIFICATION_ITERATOR_STATE_ACTIVE:
+               return "BT_SELF_COMPONENT_PORT_INPUT_NOTIFICATION_ITERATOR_STATE_ACTIVE";
+       case BT_SELF_COMPONENT_PORT_INPUT_NOTIFICATION_ITERATOR_STATE_ENDED:
+               return "BT_SELF_COMPONENT_PORT_INPUT_NOTIFICATION_ITERATOR_STATE_ENDED";
+       case BT_SELF_COMPONENT_PORT_INPUT_NOTIFICATION_ITERATOR_STATE_FINALIZED:
+               return "BT_SELF_COMPONENT_PORT_INPUT_NOTIFICATION_ITERATOR_STATE_FINALIZED";
+       case BT_SELF_COMPONENT_PORT_INPUT_NOTIFICATION_ITERATOR_STATE_FINALIZED_AND_ENDED:
+               return "BT_SELF_COMPONENT_PORT_INPUT_NOTIFICATION_ITERATOR_STATE_FINALIZED_AND_ENDED";
        default:
                return "(unknown)";
        }
This page took 0.026842 seconds and 4 git commands to generate.