Set notification iterator methods to the component class
authorPhilippe Proulx <eeppeliteloop@gmail.com>
Fri, 27 Jan 2017 08:34:18 +0000 (03:34 -0500)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Sun, 28 May 2017 16:57:37 +0000 (12:57 -0400)
commitd3eb6e8fd59ebff26cb99a70d375e542d49575a3
treedad0cd3a22d2e40cb6863e690b3ea5a076ece8fd
parent857f4dce173686a97f1510e8fce142137e15432d
Set notification iterator methods to the component class

This follows the spirit of the previous refactorings by assigning
notification iterator methods to the component class instead of setting
them during their initialization method.

Conceptually here, a (source and filter) component class defines one,
and only one notification iterator class. Therefore the concept of an
iterator "class" is hidden to the user here, since there's no
one-to-many relationship. In any OO language, an iterator class would be
a class nested under a component class.

Source and filter component classes are created with two mandatory
iterator methods: get and next.

The initialization, destroy, and seek time iterator methods are
optional.

New functions:

* bt_component_class_source_set_notification_iterator_init_method()
* bt_component_class_source_set_notification_iterator_destroy_method()
* bt_component_class_source_set_notification_iterator_seek_time_method()
* bt_component_class_filter_set_notification_iterator_init_method()
* bt_component_class_filter_set_notification_iterator_destroy_method()
* bt_component_class_filter_set_notification_iterator_seek_time_method()

The plugin development interface (babeltrace/plugin/plugin-dev.h) is
updated accordingly.

Tests and existing plugins are updated accordingly.

Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
21 files changed:
include/babeltrace/component/component-class-filter.h
include/babeltrace/component/component-class-internal.h
include/babeltrace/component/component-class-source.h
include/babeltrace/component/component-class.h
include/babeltrace/component/notification/iterator-internal.h
include/babeltrace/component/notification/iterator.h
include/babeltrace/plugin/plugin-dev.h
lib/component/component-class.c
lib/component/component.c
lib/component/iterator.c
lib/plugin/plugin.c
plugins/ctf/fs/fs.c
plugins/ctf/fs/fs.h
plugins/ctf/lttng-live/lttng-live-internal.h
plugins/ctf/lttng-live/lttng-live.c
plugins/ctf/plugin.c
plugins/muxer/muxer.c
plugins/trimmer/iterator.c
plugins/trimmer/iterator.h
plugins/trimmer/trimmer.c
tests/lib/test-plugin-plugins/sfs.c
This page took 0.025896 seconds and 4 git commands to generate.