plugin: convert plugin_fd_add() to method
[ncmpc-debian.git] / src / plugin.hxx
index 49746d4..1b39a12 100644 (file)
@@ -1,5 +1,5 @@
 /* ncmpc (Ncurses MPD Client)
- * (c) 2004-2018 The Music Player Daemon Project
+ * (c) 2004-2019 The Music Player Daemon Project
  * Project homepage: http://musicpd.org
  *
  * This program is free software; you can redistribute it and/or modify
@@ -20,6 +20,8 @@
 #ifndef PLUGIN_H
 #define PLUGIN_H
 
+#include "AsioServiceFwd.hxx"
+
 #include <vector>
 #include <string>
 
@@ -55,7 +57,7 @@ struct PluginCycle;
  * Load all plugins (executables) in a directory.
  */
 bool
-plugin_list_load_directory(PluginList *list, const char *path);
+plugin_list_load_directory(PluginList *list, const char *path) noexcept;
 
 /**
  * Run plugins in this list, until one returns success (or until the
@@ -63,15 +65,16 @@ plugin_list_load_directory(PluginList *list, const char *path);
  *
  * @param list the plugin list
  * @param args nullptr terminated command line arguments passed to the
- * plugin programs
+ * plugin programs; they must remain valid while the plugin runs
  * @param callback the callback function which will be called when a
  * result is available
  * @param callback_data caller defined pointer which is passed to the
  * callback function
  */
 PluginCycle *
-plugin_run(PluginList *list, const char *const*args,
-          plugin_callback_t callback, void *callback_data);
+plugin_run(boost::asio::io_service &io_service,
+          PluginList *list, const char *const*args,
+          plugin_callback_t callback, void *callback_data) noexcept;
 
 /**
  * Stops the plugin cycle and frees resources.  This can be called to
@@ -79,6 +82,6 @@ plugin_run(PluginList *list, const char *const*args,
  * invoked.
  */
 void
-plugin_stop(PluginCycle *invocation);
+plugin_stop(PluginCycle *invocation) noexcept;
 
 #endif