From 8b0ce102eb09589746adb9ee93c46035178a26c3 Mon Sep 17 00:00:00 2001 From: Philippe Proulx Date: Tue, 31 Jan 2017 02:45:14 -0500 Subject: [PATCH] Add bt_component_*_create_iterator_with_init_method_data() MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit This is analogous to bt_component_create_with_init_method_data(), but for notification iterators. Signed-off-by: Philippe Proulx Signed-off-by: Jérémie Galarneau --- include/babeltrace/component/component-class.h | 2 +- include/babeltrace/component/component-filter.h | 4 ++++ include/babeltrace/component/component-internal.h | 2 +- include/babeltrace/component/component-source.h | 4 ++++ lib/component/component.c | 6 +++--- lib/component/filter.c | 8 +++++++- lib/component/source.c | 8 +++++++- plugins/ctf/fs/fs.c | 3 ++- plugins/ctf/fs/fs.h | 3 ++- plugins/trimmer/iterator.c | 4 +++- plugins/trimmer/iterator.h | 2 +- tests/lib/test-plugin-plugins/sfs.c | 3 ++- 12 files changed, 37 insertions(+), 12 deletions(-) diff --git a/include/babeltrace/component/component-class.h b/include/babeltrace/component/component-class.h index ac78ce34..664d7bcf 100644 --- a/include/babeltrace/component/component-class.h +++ b/include/babeltrace/component/component-class.h @@ -58,7 +58,7 @@ typedef void (*bt_component_class_destroy_method)(struct bt_component *component typedef enum bt_notification_iterator_status (*bt_component_class_notification_iterator_init_method)( struct bt_component *component, - struct bt_notification_iterator *iterator); + struct bt_notification_iterator *iterator, void *init_method_data); typedef void (*bt_component_class_notification_iterator_destroy_method)( struct bt_notification_iterator *iterator); diff --git a/include/babeltrace/component/component-filter.h b/include/babeltrace/component/component-filter.h index 64e6ef96..1c0373bc 100644 --- a/include/babeltrace/component/component-filter.h +++ b/include/babeltrace/component/component-filter.h @@ -59,6 +59,10 @@ extern struct bt_notification_iterator *bt_component_filter_create_iterator( struct bt_component *component); +extern +struct bt_notification_iterator *bt_component_filter_create_iterator_with_init_method_data( + struct bt_component *component, void *init_method_data); + /* Defaults to 1. */ extern enum bt_component_status bt_component_filter_set_minimum_input_count(struct bt_component *filter, diff --git a/include/babeltrace/component/component-internal.h b/include/babeltrace/component/component-internal.h index dadaa75b..5d466c21 100644 --- a/include/babeltrace/component/component-internal.h +++ b/include/babeltrace/component/component-internal.h @@ -61,6 +61,6 @@ enum bt_component_status bt_component_init(struct bt_component *component, BT_HIDDEN struct bt_notification_iterator *bt_component_create_iterator( - struct bt_component *component); + struct bt_component *component, void *init_method_data); #endif /* BABELTRACE_COMPONENT_COMPONENT_INTERNAL_H */ diff --git a/include/babeltrace/component/component-source.h b/include/babeltrace/component/component-source.h index fdb3eb26..5ada76d5 100644 --- a/include/babeltrace/component/component-source.h +++ b/include/babeltrace/component/component-source.h @@ -47,6 +47,10 @@ extern struct bt_notification_iterator *bt_component_source_create_iterator( struct bt_component *component); +extern +struct bt_notification_iterator *bt_component_source_create_iterator_with_init_method_data( + struct bt_component *component, void *init_method_data); + #ifdef __cplusplus } #endif diff --git a/lib/component/component.c b/lib/component/component.c index d6921a42..136bf95f 100644 --- a/lib/component/component.c +++ b/lib/component/component.c @@ -107,7 +107,7 @@ enum bt_component_class_type bt_component_get_class_type( BT_HIDDEN struct bt_notification_iterator *bt_component_create_iterator( - struct bt_component *component) + struct bt_component *component, void *init_method_data) { enum bt_notification_iterator_status ret_iterator; enum bt_component_class_type type; @@ -139,7 +139,7 @@ struct bt_notification_iterator *bt_component_create_iterator( source_class = container_of(class, struct bt_component_class_source, parent); assert(source_class->methods.iterator.init); status = source_class->methods.iterator.init(component, - iterator); + iterator, init_method_data); if (status < 0) { goto error; } @@ -153,7 +153,7 @@ struct bt_notification_iterator *bt_component_create_iterator( filter_class = container_of(class, struct bt_component_class_filter, parent); assert(filter_class->methods.iterator.init); status = filter_class->methods.iterator.init(component, - iterator); + iterator, init_method_data); if (status < 0) { goto error; } diff --git a/lib/component/filter.c b/lib/component/filter.c index 5d983f11..dc170e36 100644 --- a/lib/component/filter.c +++ b/lib/component/filter.c @@ -183,7 +183,13 @@ end: struct bt_notification_iterator *bt_component_filter_create_iterator( struct bt_component *component) { - return bt_component_create_iterator(component); + return bt_component_create_iterator(component, NULL); +} + +struct bt_notification_iterator *bt_component_filter_create_iterator_with_init_method_data( + struct bt_component *component, void *init_method_data) +{ + return bt_component_create_iterator(component, init_method_data); } static diff --git a/lib/component/source.c b/lib/component/source.c index c75c556d..7f462763 100644 --- a/lib/component/source.c +++ b/lib/component/source.c @@ -83,5 +83,11 @@ end: struct bt_notification_iterator *bt_component_source_create_iterator( struct bt_component *component) { - return bt_component_create_iterator(component); + return bt_component_create_iterator(component, NULL); +} + +struct bt_notification_iterator *bt_component_source_create_iterator_with_init_method_data( + struct bt_component *component, void *init_method_data) +{ + return bt_component_create_iterator(component, init_method_data); } diff --git a/plugins/ctf/fs/fs.c b/plugins/ctf/fs/fs.c index c24833fa..b7b04956 100644 --- a/plugins/ctf/fs/fs.c +++ b/plugins/ctf/fs/fs.c @@ -584,7 +584,8 @@ end: } enum bt_notification_iterator_status ctf_fs_iterator_init(struct bt_component *source, - struct bt_notification_iterator *it) + struct bt_notification_iterator *it, + UNUSED_VAR void *init_method_data) { struct ctf_fs_iterator *ctf_it; struct ctf_fs_component *ctf_fs; diff --git a/plugins/ctf/fs/fs.h b/plugins/ctf/fs/fs.h index 4c165676..de572cda 100644 --- a/plugins/ctf/fs/fs.h +++ b/plugins/ctf/fs/fs.h @@ -115,7 +115,8 @@ void ctf_fs_destroy(struct bt_component *component); BT_HIDDEN enum bt_notification_iterator_status ctf_fs_iterator_init( struct bt_component *source, - struct bt_notification_iterator *it); + struct bt_notification_iterator *it, + void *init_method_data); void ctf_fs_iterator_destroy(struct bt_notification_iterator *it); diff --git a/plugins/trimmer/iterator.c b/plugins/trimmer/iterator.c index 614748a2..04557cba 100644 --- a/plugins/trimmer/iterator.c +++ b/plugins/trimmer/iterator.c @@ -42,6 +42,7 @@ #include #include #include +#include BT_HIDDEN void trimmer_iterator_destroy(struct bt_notification_iterator *it) @@ -61,7 +62,8 @@ void trimmer_iterator_destroy(struct bt_notification_iterator *it) BT_HIDDEN enum bt_notification_iterator_status trimmer_iterator_init( struct bt_component *component, - struct bt_notification_iterator *iterator) + struct bt_notification_iterator *iterator, + UNUSED_VAR void *init_method_data) { enum bt_notification_iterator_status ret = BT_NOTIFICATION_ITERATOR_STATUS_OK; diff --git a/plugins/trimmer/iterator.h b/plugins/trimmer/iterator.h index 9bebf459..1a632cda 100644 --- a/plugins/trimmer/iterator.h +++ b/plugins/trimmer/iterator.h @@ -40,7 +40,7 @@ struct trimmer_iterator { BT_HIDDEN enum bt_notification_iterator_status trimmer_iterator_init( struct bt_component *component, - struct bt_notification_iterator *iterator); + struct bt_notification_iterator *iterator, void *init_method_data); BT_HIDDEN void trimmer_iterator_destroy(struct bt_notification_iterator *it); diff --git a/tests/lib/test-plugin-plugins/sfs.c b/tests/lib/test-plugin-plugins/sfs.c index 52d3bf9f..cb1e7e47 100644 --- a/tests/lib/test-plugin-plugins/sfs.c +++ b/tests/lib/test-plugin-plugins/sfs.c @@ -25,7 +25,8 @@ static enum bt_component_status sink_consume(struct bt_component *component) static enum bt_notification_iterator_status dummy_iterator_init_method( struct bt_component *component, - struct bt_notification_iterator *iterator) + struct bt_notification_iterator *iterator, + void *init_method_data) { return BT_NOTIFICATION_ITERATOR_STATUS_OK; } -- 2.34.1