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 */
BT_PLUGIN_TYPE_FILTER = 2,
};
+typedef void (*bt_plugin_destroy_func)(struct bt_plugin *);
+
/**
* Plug-in discovery functions.
*
* 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);
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
}