use namestore API for zone import instead of using plugin directly
[oweals/gnunet.git] / src / ats / gnunet-service-ats_preferences.h
1 /*
2  This file is part of GNUnet.
3  Copyright (C) 2011-2014 GNUnet e.V.
4
5  GNUnet is free software; you can redistribute it and/or modify
6  it under the terms of the GNU General Public License as published
7  by the Free Software Foundation; either version 3, or (at your
8  option) any later version.
9
10  GNUnet is distributed in the hope that it will be useful, but
11  WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13  General Public License for more details.
14
15  You should have received a copy of the GNU General Public License
16  along with GNUnet; see the file COPYING.  If not, write to the
17  Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18  Boston, MA 02110-1301, USA.
19  */
20 /**
21  * @file ats/gnunet-service-ats_preferences.h
22  * @brief manage preferences expressed by clients
23  * @author Matthias Wachs
24  * @author Christian Grothoff
25  */
26 #ifndef GNUNET_SERVICE_ATS_PREFERENCES_H
27 #define GNUNET_SERVICE_ATS_PREFERENCES_H
28
29 #include "gnunet_util_lib.h"
30 #include "gnunet_ats_service.h"
31 #include "gnunet-service-ats.h"
32 #include "gnunet_statistics_service.h"
33 #include "ats.h"
34
35 /**
36  * Default preference value we assume if we know nothing.
37  */
38 #define DEFAULT_ABS_PREFERENCE 0.0
39
40 /**
41  * Default relative preference value we assume if we know nothing.
42  */
43 #define DEFAULT_REL_PREFERENCE 0.0
44
45
46 /**
47  * Handle 'preference change' messages from clients.
48  *
49  * @param client the client that sent the request
50  * @param msg the request message
51  */
52 void
53 GAS_handle_preference_change (struct GNUNET_SERVICE_Client *client,
54                               const struct ChangePreferenceMessage *msg);
55
56
57 /**
58  * Initialize preferences subsystem.
59  */
60 void
61 GAS_preference_init (void);
62
63
64 /**
65  * Shutdown preferences subsystem.
66  */
67 void
68 GAS_preference_done (void);
69
70
71 /**
72  * Get the normalized preference values for a specific peer.
73  *
74  * @param cls ignored
75  * @param id the peer
76  * @return pointer to the values, can be indexed
77  *  with `enum GNUNET_ATS_PreferenceKind`, never NULL
78  */
79 const double *
80 GAS_preference_get_by_peer (void *cls,
81                             const struct GNUNET_PeerIdentity *id);
82
83
84 /**
85  * A performance client disconnected
86  *
87  * @param client the disconnecting client
88  */
89 void
90 GAS_preference_client_disconnect (struct GNUNET_SERVICE_Client *client);
91
92
93 #endif