error msg
[oweals/gnunet.git] / src / transport / gnunet-service-transport_plugins.h
index ad8746b4c0ac51d64769f8f45af7168d810a1528..97e8f4c6f8fb36d8dae49eb7f2061b3ce5e4ee65 100644 (file)
 #define GNUNET_SERVICE_TRANSPORT_PLUGINS_H
 
 #include "gnunet_statistics_service.h"
-#include "gnunet_transport_plugins.h"
+#include "gnunet_transport_service.h"
+#include "gnunet_transport_plugin.h"
 #include "gnunet_util_lib.h"
+#include "gnunet_hello_lib.h"
 
 
 /**
+ * Load and initialize all plugins.  The respective functions will be
+ * invoked by the plugins when the respective events happen.  The
+ * closure will be set to a 'const char*' containing the name of the
+ * plugin that caused the call.
  *
+ * @param recv_cb function to call when data is received
+ * @param address_cb function to call when our public addresses changed
+ * @param session_end_cb function to call when a session was terminated
+ * @param address_type_cb function to call when a address type is requested
  */
-int 
+void
 GST_plugins_load (GNUNET_TRANSPORT_PluginReceiveCallback recv_cb,
-                 GNUNET_TRANSPORT_AddressNotification address_cb,
-                 GNUNET_TRANSPORT_TrafficReport traffic_cb,
-                 GNUNET_TRANSPORT_SessionEnd session_end_cb,
-                 GNUNET_TRANSPORT_CostReport cost_cb);
-
+                  GNUNET_TRANSPORT_AddressNotification address_cb,
+                  GNUNET_TRANSPORT_SessionEnd session_end_cb,
+                  GNUNET_TRANSPORT_AddressToType address_type_cb);
 
 /**
- *
+ * Unload all plugins
  */
-int 
+void
 GST_plugins_unload (void);
 
 
 /**
+ * Obtain the plugin API based on a plugin name.
  *
+ * @param name name of the plugin
+ * @return the plugin's API, NULL if the plugin is not loaded
  */
 struct GNUNET_TRANSPORT_PluginFunctions *
 GST_plugins_find (const char *name);
 
+/**
+ * Obtain the plugin API based on a the stripped plugin name after the underscore.
+ *
+ * Example: GST_plugins_printer_find (http_client) will return all plugins
+ * starting with the prefix "http":
+ * http_client or server if loaded
+ *
+ * @param name name of the plugin
+ * @return the plugin's API, NULL if the plugin is not loaded
+ */
+struct GNUNET_TRANSPORT_PluginFunctions *
+GST_plugins_printer_find (const char *name);
+
+
+/**
+ * Convert a given address to a human-readable format.  Note that the
+ * return value will be overwritten on the next call to this function.
+ *
+ * @param address address to convert
+ * @return statically allocated (!) human-readable address
+ */
+const char *
+GST_plugins_a2s (const struct GNUNET_HELLO_Address *address);
 
 
 #endif