X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Finclude%2Fgnunet_ats_plugin.h;h=27f4a6f0f36f89d432b929949af29516598a75cf;hb=7a7ec54a324da4820202582126795a8ac6bbe94d;hp=5fdc33f71d670d9e1ea7eb6e7c0935a165e311d7;hpb=b644458a5800a53f3b0196fe559d51a21dca70b9;p=oweals%2Fgnunet.git diff --git a/src/include/gnunet_ats_plugin.h b/src/include/gnunet_ats_plugin.h index 5fdc33f71..27f4a6f0f 100644 --- a/src/include/gnunet_ats_plugin.h +++ b/src/include/gnunet_ats_plugin.h @@ -1,6 +1,6 @@ /* This file is part of GNUnet - Copyright (C) 2009-2015 Christian Grothoff (and other contributing authors) + Copyright (C) 2009-2015 GNUnet e.V. GNUnet is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published @@ -14,19 +14,25 @@ You should have received a copy of the GNU General Public License along with GNUnet; see the file COPYING. If not, write to the - Free Software Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. + Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. */ /** - * @file include/gnunet_ats_plugin.h - * @brief API for the ATS solvers. This header - * specifies the struct that is given to the plugin's entry - * method and the other struct that must be returned. - * Note that the destructors of ATS plugins will - * be given the value returned by the constructor - * and is expected to return a NULL pointer. * @author Christian Grothoff + * + * @file + * API for the ATS solvers. + * + * @defgroup ats-plugin ATS service plugin API + * Plugin API for the ATS service. + * + * Specifies the struct that is given to the plugin's entry method and the other + * struct that must be returned. Note that the destructors of ATS plugins will + * be given the value returned by the constructor and is expected to return a + * NULL pointer. + * + * @{ */ #ifndef PLUGIN_ATS_H #define PLUGIN_ATS_H @@ -34,13 +40,11 @@ #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 * @@ -70,7 +74,7 @@ typedef void */ typedef void (*GAS_solver_address_feedback_preference) (void *solver, - struct GNUNET_SERVER_Client *application, + struct GNUNET_SERVICE_Client *application, const struct GNUNET_PeerIdentity *peer, const struct GNUNET_TIME_Relative scope, enum GNUNET_ATS_PreferenceKind kind, @@ -114,12 +118,10 @@ typedef void * * @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); /** @@ -127,16 +129,10 @@ typedef void * * @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); /** @@ -145,7 +141,7 @@ typedef void * @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); @@ -388,8 +384,8 @@ typedef void /** - * 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 @@ -401,6 +397,20 @@ typedef const double * 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 @@ -438,6 +448,11 @@ struct GNUNET_ATS_PluginEnvironment */ 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 @@ -464,3 +479,5 @@ struct GNUNET_ATS_PluginEnvironment }; #endif + +/** @} */ /* end of group */