aboutsummaryrefslogtreecommitdiff
path: root/src/ats
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2011-10-14 08:52:15 +0000
committerChristian Grothoff <christian@grothoff.org>2011-10-14 08:52:15 +0000
commit0e027fe10f89f0431e8b223528c9a13bdd991802 (patch)
treecf07db7780589ace49813853e9004b386fc79f21 /src/ats
parentd86cd012c0372c1746fed2a50b7cccca9de99be3 (diff)
downloadgnunet-0e027fe10f89f0431e8b223528c9a13bdd991802.tar.gz
gnunet-0e027fe10f89f0431e8b223528c9a13bdd991802.zip
complete reservations API
Diffstat (limited to 'src/ats')
-rw-r--r--src/ats/gnunet-service-ats.c7
-rw-r--r--src/ats/gnunet-service-ats_reservations.c47
-rw-r--r--src/ats/gnunet-service-ats_reservations.h37
3 files changed, 90 insertions, 1 deletions
diff --git a/src/ats/gnunet-service-ats.c b/src/ats/gnunet-service-ats.c
index 10972190f..14bb963b9 100644
--- a/src/ats/gnunet-service-ats.c
+++ b/src/ats/gnunet-service-ats.c
@@ -27,9 +27,10 @@
27#include "platform.h" 27#include "platform.h"
28#include "gnunet_util_lib.h" 28#include "gnunet_util_lib.h"
29#include "gnunet_ats_service.h" 29#include "gnunet_ats_service.h"
30#include "gnunet-service-ats_addresses.h"
30#include "gnunet-service-ats_performance.h" 31#include "gnunet-service-ats_performance.h"
31#include "gnunet-service-ats_scheduling.h" 32#include "gnunet-service-ats_scheduling.h"
32#include "gnunet-service-ats_addresses.h" 33#include "gnunet-service-ats_reservations.h"
33#include "ats.h" 34#include "ats.h"
34 35
35 36
@@ -97,6 +98,8 @@ cleanup_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
97{ 98{
98 GAS_addresses_done (); 99 GAS_addresses_done ();
99 GAS_scheduling_done (); 100 GAS_scheduling_done ();
101 GAS_performance_done ();
102 GAS_reservations_done ();
100} 103}
101 104
102 105
@@ -126,6 +129,8 @@ run (void *cls, struct GNUNET_SERVER_Handle *server,
126 GNUNET_MESSAGE_TYPE_ATS_PREFERENCE_CHANGE, 0}, 129 GNUNET_MESSAGE_TYPE_ATS_PREFERENCE_CHANGE, 0},
127 {NULL, NULL, 0, 0} 130 {NULL, NULL, 0, 0}
128 }; 131 };
132 GAS_reservations_init ();
133 GAS_performance_init (server);
129 GAS_scheduling_init (server); 134 GAS_scheduling_init (server);
130 GAS_addresses_init (); 135 GAS_addresses_init ();
131 GNUNET_SERVER_disconnect_notify (server, 136 GNUNET_SERVER_disconnect_notify (server,
diff --git a/src/ats/gnunet-service-ats_reservations.c b/src/ats/gnunet-service-ats_reservations.c
index 3356aefbd..8171b71f0 100644
--- a/src/ats/gnunet-service-ats_reservations.c
+++ b/src/ats/gnunet-service-ats_reservations.c
@@ -27,6 +27,17 @@
27#include "gnunet-service-ats_reservations.h" 27#include "gnunet-service-ats_reservations.h"
28 28
29 29
30/**
31 * Reserve the given amount of incoming bandwidth (in bytes) from the
32 * given peer. If a reservation is not possible right now, return how
33 * long the client should wait before trying again.
34 *
35 * @param peer peer to reserve bandwidth from
36 * @param amount number of bytes to reserve
37 * @return 0 if the reservation was successful, FOREVER if the
38 * peer is not connected, otherwise the time to wait
39 * until the reservation might succeed
40 */
30struct GNUNET_TIME_Relative 41struct GNUNET_TIME_Relative
31GAS_reservations_reserve (const struct GNUNET_PeerIdentity *peer, 42GAS_reservations_reserve (const struct GNUNET_PeerIdentity *peer,
32 int32_t amount) 43 int32_t amount)
@@ -36,4 +47,40 @@ GAS_reservations_reserve (const struct GNUNET_PeerIdentity *peer,
36 return GNUNET_TIME_UNIT_ZERO; 47 return GNUNET_TIME_UNIT_ZERO;
37} 48}
38 49
50
51/**
52 * Set the amount of bandwidth the other peer could currently transmit
53 * to us (as far as we know) to the given value.
54 *
55 * @param peer identity of the peer
56 * @param bandwidth_in currently available bandwidth from that peer to
57 * this peer (estimate)
58 */
59void
60GAS_reservations_set_bandwidth (const struct GNUNET_PeerIdentity *peer,
61 struct GNUNET_BANDWIDTH_Value32NBO bandwidth_in)
62{
63}
64
65
66
67/**
68 * Initialize reservations subsystem.
69 */
70void
71GAS_reservations_init ()
72{
73}
74
75
76/**
77 * Shutdown reservations subsystem.
78 */
79void
80GAS_reservations_done ()
81{
82}
83
84
85
39/* end of gnunet-service-ats_reservations.c */ 86/* end of gnunet-service-ats_reservations.c */
diff --git a/src/ats/gnunet-service-ats_reservations.h b/src/ats/gnunet-service-ats_reservations.h
index 63b9a5936..5112f8213 100644
--- a/src/ats/gnunet-service-ats_reservations.h
+++ b/src/ats/gnunet-service-ats_reservations.h
@@ -29,9 +29,46 @@
29#include "gnunet_util_lib.h" 29#include "gnunet_util_lib.h"
30 30
31 31
32/**
33 * Set the amount of bandwidth the other peer could currently transmit
34 * to us (as far as we know) to the given value.
35 *
36 * @param peer identity of the peer
37 * @param bandwidth_in currently available bandwidth from that peer to
38 * this peer (estimate)
39 */
40void
41GAS_reservations_set_bandwidth (const struct GNUNET_PeerIdentity *peer,
42 struct GNUNET_BANDWIDTH_Value32NBO bandwidth_in);
43
44
45/**
46 * Reserve the given amount of incoming bandwidth (in bytes) from the
47 * given peer. If a reservation is not possible right now, return how
48 * long the client should wait before trying again.
49 *
50 * @param peer peer to reserve bandwidth from
51 * @param amount number of bytes to reserve
52 * @return 0 if the reservation was successful, FOREVER if the
53 * peer is not connected, otherwise the time to wait
54 * until the reservation might succeed
55 */
32struct GNUNET_TIME_Relative 56struct GNUNET_TIME_Relative
33GAS_reservations_reserve (const struct GNUNET_PeerIdentity *peer, 57GAS_reservations_reserve (const struct GNUNET_PeerIdentity *peer,
34 int32_t amount); 58 int32_t amount);
35 59
36 60
61/**
62 * Initialize reservations subsystem.
63 */
64void
65GAS_reservations_init (void);
66
67
68/**
69 * Shutdown reservations subsystem.
70 */
71void
72GAS_reservations_done (void);
73
37#endif 74#endif