#endif
/**
+ * Plug-in private data deallocation function type.
*
+ * @param plugin Plug-in instance
*/
-typedef void (*bt_plugin_destroy_cb)(struct bt_plugin *);
+typedef void (*bt_plugin_destroy_cb)(struct bt_plugin *plugin);
/**
+ * Plug-in error stream registration function type.
*
+ * @param plugin Plug-in instance
+ * @param error_stream Error stream, ownership is not transferred
+ * @returns One of #bt_plugin_status values
*/
-typedef void (*bt_plugin_set_error_stream_cb)(struct bt_plugin *,
- FILE *error_stream);
+typedef enum bt_plugin_status (*bt_plugin_set_error_stream_cb)(
+ struct bt_plugin *plugin, FILE *error_stream);
/**
* Get a plug-in's private (implementation) data.
void *private_data, bt_plugin_destroy_func destroy_func,
bt_plugin_sink_handle_notification_cb notification_cb);
+/* Notification iterator functions */
/**
- * Allocate an notification iterator.
+ * Allocate a notification iterator.
*
* @param plugin Plug-in instance
* @param next_cb Callback advancing to the next notification
bt_notification_iterator_next_cb next_cb,
bt_notification_iterator_get_notification_cb notification_cb);
+/**
+ * Set an iterator's private data.
+ *
+ * @param plugin Plug-in instance on which to iterate
+ * @param data Iterator private data
+ * @returns One of #bt_notification_iterator_status values
+ */
+extern enum bt_notification_iterator_status *bt_notification_iterator_create(
+ struct bt_plugin *plugin, void *data);
+
#ifdef __cplusplus
}
#endif