ref.h: doc: fix typo
[babeltrace.git] / lib / plugin-system / iterator.c
index 06fea4aa85824f8294f7f36bf626bff956299d85..9976ad5acf9d609f4a583de19f1d3d3245cd01e0 100644 (file)
@@ -53,10 +53,19 @@ BT_HIDDEN
 struct bt_notification_iterator *bt_notification_iterator_create(
                struct bt_component *component)
 {
+       enum bt_component_type type;
        struct bt_notification_iterator *iterator = NULL;
 
-       if (!component ||
-               bt_component_get_type(component) != BT_COMPONENT_TYPE_SOURCE) {
+       if (!component) {
+               goto end;
+       }
+
+       type = bt_component_get_type(component);
+       switch (type) {
+       case BT_COMPONENT_TYPE_SOURCE:
+       case BT_COMPONENT_TYPE_FILTER:
+               break;
+       default:
                goto end;
        }
 
@@ -120,6 +129,24 @@ end:
        return ret;
 }
 
+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)
+{
+       enum bt_notification_iterator_status ret =
+                       BT_NOTIFICATION_ITERATOR_STATUS_OK;
+
+       if (!iterator || !seek_time) {
+               ret = BT_NOTIFICATION_ITERATOR_STATUS_INVAL;
+               goto end;
+       }
+
+       iterator->seek_time = seek_time;
+end:
+       return ret;
+}
+
 enum bt_notification_iterator_status
 bt_notification_iterator_set_destroy_cb(
                struct bt_notification_iterator *iterator,
@@ -161,9 +188,34 @@ 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);
 }
 
+enum bt_notification_iterator_status bt_notification_iterator_seek_time(
+               struct bt_notification_iterator *iterator,
+               enum bt_notification_iterator_seek_origin seek_origin,
+               int64_t time)
+{
+       enum bt_notification_iterator_status ret =
+                       BT_NOTIFICATION_ITERATOR_STATUS_UNSUPPORTED;
+       return ret;
+}
This page took 0.025456 seconds and 4 git commands to generate.