From b5c2631a3e78fbd0f7c1548cdf9618ac73012c22 Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A9r=C3=A9mie=20Galarneau?= Date: Wed, 4 Mar 2015 12:24:24 -0500 Subject: [PATCH] Plug-in API corrections MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Jérémie Galarneau --- include/babeltrace/plugin/notification/iterator.h | 7 ++++++- include/babeltrace/plugin/plugin.h | 13 +++++++++---- include/babeltrace/plugin/source.h | 9 +++++---- 3 files changed, 20 insertions(+), 9 deletions(-) diff --git a/include/babeltrace/plugin/notification/iterator.h b/include/babeltrace/plugin/notification/iterator.h index baf62f047..47e8bae5b 100644 --- a/include/babeltrace/plugin/notification/iterator.h +++ b/include/babeltrace/plugin/notification/iterator.h @@ -44,8 +44,13 @@ struct bt_notification *bt_notification_iterator_get_notification( void bt_notification_iterator_get(struct bt_notification_iterator *iterator); void bt_notification_iterator_put(struct bt_notification_iterator *iterator); +/* API for plug-in authors */ +struct bt_notification_iterator *bt_notification_iterator_create( + struct bt_plugin *plugin); + + #ifdef __cplusplus } #endif -#endif /* BABELTRACE_PLUGIN_NOTIFICATION_H */ +#endif /* BABELTRACE_PLUGIN_NOTIFICATION_ITERATOR_H */ diff --git a/include/babeltrace/plugin/plugin.h b/include/babeltrace/plugin/plugin.h index 9c2c5f006..a8aada4eb 100644 --- a/include/babeltrace/plugin/plugin.h +++ b/include/babeltrace/plugin/plugin.h @@ -46,6 +46,8 @@ enum bt_plugin_type { BT_PLUGIN_TYPE_FILTER = 2, }; +typedef void (*bt_plugin_destroy_func)(struct bt_plugin *); + /** * Plug-in discovery functions. * @@ -56,13 +58,16 @@ enum bt_plugin_type { * The functions marked as mandatory MUST be exported by the shared object * to be considered a valid plug-in. */ -enum bt_plugin_type bt_plugin_get_type(void); -const char *bt_plugin_get_name(void); +/* Plug-in discovery functions... find a better name */ +enum bt_plugin_type bt_plugin_lib_get_type(void); +const char *bt_plugin_lib_get_format_name(void); /* TODO: document mandatory fields and their expected types */ -int bt_plugin_set_parameters(struct bt_plugin *plugin, - struct bt_ctf_field *field); +struct bt_plugin *bt_plugin_create(struct bt_ctf_field *params); +void *bt_plugin_get_user_data(struct bt_plugin *plugin); +int bt_plugin_set_error_stream(struct bt_plugin *plugin, FILE *error_stream); +/* Refcounting */ void bt_plugin_get(struct bt_plugin *plugin); void bt_plugin_put(struct bt_plugin *plugin); diff --git a/include/babeltrace/plugin/source.h b/include/babeltrace/plugin/source.h index 581b7893d..ade5cc4e9 100644 --- a/include/babeltrace/plugin/source.h +++ b/include/babeltrace/plugin/source.h @@ -35,15 +35,16 @@ extern "C" { struct bt_plugin; struct bt_notification_iterator; -typedef struct bt_iterator *(*bt_plugin_source_iterator_create_func)(struct bt_plugin *); +typedef struct bt_notification_iterator *( + *bt_plugin_source_iterator_create_func)(struct bt_plugin *); struct bt_notification_iterator *bt_plugin_source_get_iterator( struct bt_plugin *plugin); /* Plug-in initialization functions */ -struct bt_plugin *bt_plugin_source_create(void *data); -int bt_plugin_source_set_iterator_create_function(struct bt_plugin *plugin, - bt_plugin_source_iterator_create_func func); +struct bt_plugin *bt_plugin_source_create(const char *name, void *user_data, + bt_plugin_destroy_func destroy_func, + bt_plugin_source_iterator_create_func iterator_create_func); #ifdef __cplusplus } -- 2.34.1