* @param bw_changed_cb callback for changed bandwidth amounts
* @param bw_changed_cb_cls cls for callback
* @param get_preference callback to get relative preferences for a peer
- * @param get_preference_cls cls for callback to get relative preferences
+ * @param get_preference callback to get relative preferences for a peer
+ * @param get_properties_cls for callback to get relative properties
+ * @param get_properties_cls cls for callback to get relative properties
* @return struct GAS_MLP_Handle on success, NULL on fail
*/
void *
* Add a single address within a network to the solver
*
* @param solver the solver Handle
- * @param addresses the address hashmap containing all addresses
* @param address the address to add
* @param network network type of this address
*/
struct ATS_Address *address,
uint32_t network);
+
+/**
+ * Transport properties for this address have changed
+ *
+ * @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
+ */
void
GAS_mlp_address_property_changed (void *solver,
struct ATS_Address *address,
double rel_value);
+/**
+ * Transport session for this address has changed
+ *
+ * NOTE: values in addresses are already updated
+ *
+ * @param solver solver handle
+ * @param address the address
+ * @param cur_session the current session
+ * @param new_session the new session
+ */
void
GAS_mlp_address_session_changed (void *solver,
struct ATS_Address *address,
uint32_t cur_session,
uint32_t new_session);
+
+/**
+ * Usage for this address has changed
+ *
+ * NOTE: values in addresses are already updated
+ *
+ * @param solver solver handle
+ * @param address the address
+ * @param in_use usage state
+ */
void
GAS_mlp_address_inuse_changed (void *solver,
struct ATS_Address *address,
- uint32_t session,
int in_use);
+
+/**
+ * Network scope for this address has changed
+ *
+ * NOTE: values in addresses are already updated
+ *
+ * @param solver solver handle
+ * @param address the address
+ * @param current_network the current network
+ * @param new_network the new network
+ */
void
GAS_mlp_address_change_network (void *solver,
struct ATS_Address *address,
* The MLP problem has to be recreated and the problem has to be resolved
*
* @param solver the MLP Handle
- * @param addresses the address hashmap
- * the address has to be already removed from the hashmap
* @param address the address to delete
* @param session_only delete only session not whole address
*/
* Changes the preferences for a peer in the MLP problem
*
* @param solver the MLP Handle
- * @param addresses the address hashmap
* @param peer the peer
* @param kind the kind to change the preference
* @param pref_rel the relative score
double pref_rel);
+/**
+ * Get application feedback for a peer
+ *
+ * @param solver the solver handle
+ * @param application the application
+ * @param peer the peer to change the preference for
+ * @param scope the time interval for this feedback: [now - scope .. now]
+ * @param kind the kind to change the preference
+ * @param score the score
+ */
+void
+GAS_mlp_address_preference_feedback (void *solver,
+ void *application,
+ const struct GNUNET_PeerIdentity *peer,
+ const struct GNUNET_TIME_Relative scope,
+ enum GNUNET_ATS_PreferenceKind kind,
+ double score);
+
+
+
/**
* Start a bulk operation
*
/**
- * Get the preferred address for a specific peer
+ * Get the preferred address for a specific peer until
+ * GAS_mlp_stop_get_preferred_address is called
*
* @param solver the MLP Handle
- * @param addresses address hashmap
* @param peer the peer
* @return suggested address
*/
* Stop notifying about address and bandwidth changes for this peer
*
* @param solver the MLP handle
- * @param addresses address hashmap
* @param peer the peer
*/
-
void
GAS_mlp_stop_get_preferred_address (void *solver,
const struct GNUNET_PeerIdentity *peer);