#include "gnunet_ats_service.h"
#include "gnunet_statistics_service.h"
-
/**
* Representation of an address the plugin can choose from.
*/
struct ATS_Address;
-
/**
* Change the preference for a peer
*
*
* @param solver the solver Handle
* @param address the address to delete
- * @param session_only remove address or just session
*/
typedef void
(*GAS_solver_address_delete) (void *solver,
- struct ATS_Address *address,
- int session_only);
+ struct ATS_Address *address);
/**
*
* @param solver solver handle
* @param address the address
- * @param type the ATSI type in HBO
- * @param abs_value the absolute value of the property
- * @param rel_value the normalized value
*/
typedef void
(*GAS_solver_address_property_changed) (void *solver,
- struct ATS_Address *address,
- enum GNUNET_ATS_Property type,
- uint32_t abs_value,
- double rel_value);
+ struct ATS_Address *address);
/**
* @param solver the solver to use
* @param peer the peer
*/
-typedef const struct ATS_Address *
+typedef void
(*GAS_solver_get_preferred_address) (void *solver,
const struct GNUNET_PeerIdentity *peer);
/**
- * Callback to call from solver to obtain application preference values for a
- * peer
+ * Callback to call from solver to obtain application preference
+ * values for a peer.
*
* @param cls the cls
* @param id the peer id
const struct GNUNET_PeerIdentity *id);
+/**
+ * Callback to call from solver to obtain application connectivity
+ * preferences for a peer.
+ *
+ * @param cls the cls
+ * @param id the peer id
+ * @return 0 if connectivity is not desired, non-null if address
+ * suggestions are requested
+ */
+typedef unsigned int
+(*GAS_get_connectivity) (void *cls,
+ const struct GNUNET_PeerIdentity *id);
+
+
/**
* The ATS plugin will pass a pointer to a struct
* of this type as to the initialization function
*/
GAS_get_preferences get_preferences;
+ /**
+ * ATS addresses function to obtain preference values
+ */
+ GAS_get_connectivity get_connectivity;
+
/**
* Callback for solver to call with status information,
* can be NULL