X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Fats%2Fgnunet-service-ats_performance.h;h=1a96c8819fca280a952096192a5d2f5d3902b958;hb=bfdb0abc074a99a7d24ca408f38cfda128d4132b;hp=6dfd112029a4d1dee72f93b63a3cc562e8313ea6;hpb=7610732f7dc73ec59c5768b707f75cde484e877f;p=oweals%2Fgnunet.git diff --git a/src/ats/gnunet-service-ats_performance.h b/src/ats/gnunet-service-ats_performance.h index 6dfd11202..1a96c8819 100644 --- a/src/ats/gnunet-service-ats_performance.h +++ b/src/ats/gnunet-service-ats_performance.h @@ -28,18 +28,18 @@ #define GNUNET_SERVICE_ATS_PERFORMANCE_H #include "gnunet_util_lib.h" -#include "gnunet_transport_service.h" // FIXME +#include "gnunet_ats_service.h" #include "ats.h" /** * Register a new performance client. * * @param client handle of the new client - * @param flag options for the client + * @param flag flag specifying the type of the client */ void GAS_performance_add_client (struct GNUNET_SERVER_Client *client, - enum StartFlag flag); + enum StartFlag flag); /** @@ -52,6 +52,21 @@ void GAS_performance_remove_client (struct GNUNET_SERVER_Client *client); +void +GAS_handle_performance_update (struct GNUNET_PeerIdentity *peer, + const char *plugin_name, + const void *plugin_addr, + size_t plugin_addr_len, + const int active, + struct GNUNET_ATS_Information *ats, + uint32_t ats_count, + struct GNUNET_BANDWIDTH_Value32NBO + bandwidth_out, + struct GNUNET_BANDWIDTH_Value32NBO + bandwidth_in); + + + /** * Transmit the given performance information to all performance * clients. @@ -60,20 +75,36 @@ GAS_performance_remove_client (struct GNUNET_SERVER_Client *client); * @param plugin_name 0-termintated string specifying the transport plugin * @param plugin_addr binary address for the plugin to use * @param plugin_addr_len number of bytes in plugin_addr + * @param active is this address active * @param atsi performance data for the address * @param atsi_count number of performance records in 'ats' * @param bandwidth_out assigned outbound bandwidth * @param bandwidth_in assigned inbound bandwidth */ void -GAS_performance_notify_clients (const struct GNUNET_PeerIdentity *peer, - const char *plugin_name, - const void *plugin_addr, size_t plugin_addr_len, - const struct GNUNET_TRANSPORT_ATS_Information *atsi, - uint32_t atsi_count, - struct GNUNET_BANDWIDTH_Value32NBO bandwidth_out, - struct GNUNET_BANDWIDTH_Value32NBO bandwidth_in); +GAS_performance_notify_all_clients (const struct GNUNET_PeerIdentity *peer, + const char *plugin_name, + const void *plugin_addr, size_t plugin_addr_len, + const int active, + const struct GNUNET_ATS_Information *atsi, + uint32_t atsi_count, + struct GNUNET_BANDWIDTH_Value32NBO + bandwidth_out, + struct GNUNET_BANDWIDTH_Value32NBO + bandwidth_in); + +/** + * Handle 'address list request' messages from clients. + * + * @param cls unused, NULL + * @param client client that sent the request + * @param message the request message + */ +void +GAS_handle_request_address_list (void *cls, + struct GNUNET_SERVER_Client *client, + const struct GNUNET_MessageHeader *message); /** * Handle 'reservation request' messages from clients. @@ -83,8 +114,9 @@ GAS_performance_notify_clients (const struct GNUNET_PeerIdentity *peer, * @param message the request message */ void -GAS_handle_reservation_request (void *cls, struct GNUNET_SERVER_Client *client, - const struct GNUNET_MessageHeader *message); +GAS_handle_reservation_request (void *cls, + struct GNUNET_SERVER_Client *client, + const struct GNUNET_MessageHeader *message); /** @@ -95,17 +127,38 @@ GAS_handle_reservation_request (void *cls, struct GNUNET_SERVER_Client *client, * @param message the request message */ void -GAS_handle_preference_change (void *cls, struct GNUNET_SERVER_Client *client, - const struct GNUNET_MessageHeader *message); +GAS_handle_preference_change (void *cls, + struct GNUNET_SERVER_Client *client, + const struct GNUNET_MessageHeader *message); +/** + * Handle 'preference feedback' messages from clients. + * + * @param cls unused, NULL + * @param client client that sent the request + * @param message the request message + */ +void +GAS_handle_preference_feedback (void *cls, + struct GNUNET_SERVER_Client *client, + const struct GNUNET_MessageHeader *message); + + +void +GAS_handle_monitor (void *cls, + struct GNUNET_SERVER_Client *client, + const struct GNUNET_MessageHeader *message); + /** * Initialize performance subsystem. * * @param server handle to our server + * @param addresses the address handle to use */ void -GAS_performance_init (struct GNUNET_SERVER_Handle *server); +GAS_performance_init (struct GNUNET_SERVER_Handle *server, + struct GAS_Addresses_Handle *GSA_addresses); /**