Implement notification iterator wrappers
[babeltrace.git] / lib / plugin-system / iterator.c
index 6a40ba70c176c27a0b72b33110dfbf9df8a005c2..8a67e1ab4862c512a3d573f1767fd3cbcb4a95e2 100644 (file)
@@ -45,6 +45,7 @@ void bt_notification_iterator_destroy(struct bt_object *obj)
        if (iterator->user_destroy) {
                iterator->user_destroy(iterator);
        }
+       BT_PUT(iterator->component);
        g_free(iterator);
 }
 
@@ -64,6 +65,7 @@ struct bt_notification_iterator *bt_notification_iterator_create(
                goto end;
        }
 
+       iterator->component = bt_get(component);
        bt_object_init(iterator, bt_notification_iterator_destroy);
 end:
        return iterator;
@@ -158,3 +160,26 @@ bt_notification_iterator_set_private_data(
 end:
        return ret;
 }
+
+struct bt_notification *bt_notification_iterator_get_notification(
+               struct bt_notification_iterator *iterator)
+{
+       assert(iterator);
+       assert(iterator->get);
+       return iterator->get(iterator);
+}
+
+enum bt_notification_iterator_status
+bt_notification_iterator_next(struct bt_notification_iterator *iterator)
+{
+       assert(iterator);
+       assert(iterator->next);
+       return iterator->next(iterator);
+}
+
+struct bt_component *bt_notification_iterator_get_component(
+               struct bt_notification_iterator *iterator)
+{
+       return bt_get(iterator->component);
+}
+
This page took 0.024206 seconds and 4 git commands to generate.