-#ifndef BABELTRACE_COMPONENT_CONNECTION_INTERNAL_H
-#define BABELTRACE_COMPONENT_CONNECTION_INTERNAL_H
+#ifndef BABELTRACE_GRAPH_CONNECTION_INTERNAL_H
+#define BABELTRACE_GRAPH_CONNECTION_INTERNAL_H
/*
- * BabelTrace - Component Connection Internal
- *
* Copyright 2017 Jérémie Galarneau <jeremie.galarneau@efficios.com>
*
* Author: Jérémie Galarneau <jeremie.galarneau@efficios.com>
* SOFTWARE.
*/
-#include <babeltrace/graph/connection.h>
+#include <babeltrace/graph/connection-const.h>
#include <babeltrace/graph/notification-iterator.h>
-#include <babeltrace/graph/private-connection.h>
+#include <babeltrace/graph/notification-iterator-internal.h>
#include <babeltrace/object-internal.h>
+#include <babeltrace/assert-internal.h>
+#include <stdbool.h>
struct bt_graph;
* created on this connection.
*/
GPtrArray *iterators;
-};
-static inline
-struct bt_connection *bt_connection_from_private(
- struct bt_private_connection *private_connection)
-{
- return (void *) private_connection;
-}
-
-static inline
-struct bt_private_connection *bt_private_connection_from_connection(
- struct bt_connection *connection)
-{
- return (void *) connection;
-}
+ bool notified_upstream_port_connected;
+ bool notified_upstream_port_disconnected;
+ bool notified_downstream_port_connected;
+ bool notified_downstream_port_disconnected;
+ bool notified_graph_ports_connected;
+ bool notified_graph_ports_disconnected;
+};
BT_HIDDEN
struct bt_connection *bt_connection_create(struct bt_graph *graph,
struct bt_port *downstream_port);
BT_HIDDEN
-void bt_connection_disconnect_ports(struct bt_connection *conn);
+void bt_connection_end(struct bt_connection *conn, bool try_remove_from_graph);
BT_HIDDEN
void bt_connection_remove_iterator(struct bt_connection *conn,
- struct bt_notification_iterator *iterator);
+ struct bt_self_component_port_input_notification_iterator *iterator);
static inline
struct bt_graph *bt_connection_borrow_graph(struct bt_connection *conn)
{
- assert(conn);
+ BT_ASSERT(conn);
return (void *) conn->base.parent;
}
-static inline
-enum bt_connection_status
-bt_connection_status_from_notification_iterator_status(
- enum bt_notification_iterator_status iter_status)
-{
- switch (iter_status) {
- case BT_NOTIFICATION_ITERATOR_STATUS_CANCELED:
- return BT_CONNECTION_STATUS_ERROR;
- case BT_NOTIFICATION_ITERATOR_STATUS_AGAIN:
- return BT_CONNECTION_STATUS_ERROR;
- case BT_NOTIFICATION_ITERATOR_STATUS_END:
- return BT_CONNECTION_STATUS_ERROR;
- case BT_NOTIFICATION_ITERATOR_STATUS_OK:
- return BT_CONNECTION_STATUS_OK;
- case BT_NOTIFICATION_ITERATOR_STATUS_INVALID:
- return BT_CONNECTION_STATUS_INVALID;
- case BT_NOTIFICATION_ITERATOR_STATUS_ERROR:
- return BT_CONNECTION_STATUS_ERROR;
- case BT_NOTIFICATION_ITERATOR_STATUS_NOMEM:
- return BT_CONNECTION_STATUS_NOMEM;
- case BT_NOTIFICATION_ITERATOR_STATUS_UNSUPPORTED:
- return BT_CONNECTION_STATUS_ERROR;
- default:
-#ifdef BT_LOGF
- BT_LOGF("Unknown notification iterator status: status=%d",
- iter_status);
-#endif
- abort();
- }
-}
-
-#endif /* BABELTRACE_COMPONENT_CONNECTION_INTERNAL_H */
+#endif /* BABELTRACE_GRAPH_CONNECTION_INTERNAL_H */