Make bt_private_connection_create_notification_iterator() return a status code
[babeltrace.git] / include / babeltrace / graph / connection-internal.h
index 2a85296831089a06e3f46bc1d4326b5efbca7abd..13e7d9ee65ad95aa0460819131a9e0dfb3b83347 100644 (file)
@@ -28,6 +28,7 @@
  */
 
 #include <babeltrace/graph/connection.h>
+#include <babeltrace/graph/notification-iterator.h>
 #include <babeltrace/graph/private-connection.h>
 #include <babeltrace/object-internal.h>
 
@@ -82,4 +83,35 @@ BT_HIDDEN
 void bt_connection_remove_iterator(struct bt_connection *conn,
                struct bt_notification_iterator *iterator);
 
+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 */
This page took 0.02322 seconds and 4 git commands to generate.