more code
[oweals/gnunet.git] / src / transport / gnunet-service-transport_plugins.h
index ad8746b4c0ac51d64769f8f45af7168d810a1528..04bb5ea22e26e3ffe1d5e34eba12a15c67d2d169 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);
 
 
+/**
+ * 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
 /* end of file gnunet-service-transport_plugins.h */