Remove the need to implement the notification iterator's "get" method
[babeltrace.git] / include / babeltrace / component / notification / iterator.h
index 69c9b39a6b80d1acec402b3e55ad905b1ca60f71..8cf2a0626c38484e481fcfd0aa81abacdda6b2d1 100644 (file)
@@ -72,6 +72,11 @@ enum bt_notification_iterator_seek_origin {
        BT_NOTIFICATION_ITERATOR_SEEK_ORIGIN_EPOCH = 3,
 };
 
+struct bt_notification_iterator_next_return {
+       struct bt_notification *notification;
+       enum bt_notification_iterator_status status;
+};
+
 /**
  * Get current notification at iterator's position.
  *
@@ -126,111 +131,6 @@ extern enum bt_notification_iterator_status bt_notification_iterator_seek_time(
 extern struct bt_component *bt_notification_iterator_get_component(
                struct bt_notification_iterator *iterator);
 
-/** bt_notification_iterator */
-/**
- * Function returning an iterator's current notification.
- *
- * @param iterator     Notification iterator instance
- * @returns            A notification instance
- */
-typedef struct bt_notification *(*bt_notification_iterator_get_cb)(
-               struct bt_notification_iterator *iterator);
-
-/**
- * Function advancing an iterator's position of one element.
- *
- * @param iterator     Notification iterator instance
- * @returns            One of #bt_notification_iterator_status values
- */
-typedef enum bt_notification_iterator_status (*bt_notification_iterator_next_cb)(
-               struct bt_notification_iterator *iterator);
-
-/**
- * Function advancing an iterator's position to a given time (relative to Epoch).
- *
- * @param iterator     Notification iterator instance
- * @param time         Time at which to seek, expressed in ns since Epoch
- * @returns            One of #bt_notification_iterator_status values
- */
-typedef enum bt_notification_iterator_status
-               (*bt_notification_iterator_seek_time_cb)(
-               struct bt_notification_iterator *iterator, int64_t time);
-
-/**
- * Function cleaning-up an iterator's private data on destruction.
- *
- * @param iterator     Notification iterator instance
- */
-typedef void (*bt_notification_iterator_destroy_cb)(
-               struct bt_notification_iterator *iterator);
-
-/**
- * Set an iterator's "get" callback which return the current notification.
- *
- * @param iterator     Notification iterator instance
- * @param get          Notification return callback
- * @returns            One of #bt_notification_iterator_status values
- */
-extern enum bt_notification_iterator_status
-bt_notification_iterator_set_get_cb(struct bt_notification_iterator *iterator,
-               bt_notification_iterator_get_cb get);
-
-/**
- * Set an iterator's "next" callback which advances the iterator's position.
- *
- * @param iterator     Notification iterator instance
- * @param next         Iterator "next" callback
- * @returns            One of #bt_notification_iterator_status values
- */
-extern enum bt_notification_iterator_status
-bt_notification_iterator_set_next_cb(struct bt_notification_iterator *iterator,
-               bt_notification_iterator_next_cb next);
-
-/**
- * Set an iterator's "seek_time" callback which sets the iterator's position to
- *     provided time (in ns since Epoch).
- *
- * @param iterator     Notification iterator instance
- * @param seek_timetime        Iterator "seek_time" callback
- * @returns            One of #bt_notification_iterator_status values
- */
-extern enum bt_notification_iterator_status
-bt_notification_iterator_set_seek_time_cb(struct bt_notification_iterator *iterator,
-               bt_notification_iterator_seek_time_cb seek_time);
-
-/**
- * Set an iterator's "destroy" callback.
- *
- * @param iterator     Notification iterator instance
- * @param next         Iterator destruction callback
- * @returns            One of #bt_notification_iterator_status values
- */
-extern enum bt_notification_iterator_status
-bt_notification_iterator_set_destroy_cb(
-               struct bt_notification_iterator *iterator,
-               bt_notification_iterator_destroy_cb destroy);
-
-/**
- * Set an iterator's private data.
- *
- * @param iterator     Notification iterator instance
- * @param data         Iterator private data
- * @returns            One of #bt_notification_iterator_status values
- */
-extern enum bt_notification_iterator_status
-bt_notification_iterator_set_private_data(
-               struct bt_notification_iterator *iterator, void *data);
-
-/**
- * Get an iterator's private data.
- *
- * @param iterator     Notification iterator instance
- * @returns            Iterator instance private data
- */
-extern void *bt_notification_iterator_get_private_data(
-               struct bt_notification_iterator *iterator);
-
-
 #ifdef __cplusplus
 }
 #endif
This page took 0.026786 seconds and 4 git commands to generate.