diff options
author | Christian Grothoff <christian@grothoff.org> | 2011-10-14 08:52:15 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2011-10-14 08:52:15 +0000 |
commit | 0e027fe10f89f0431e8b223528c9a13bdd991802 (patch) | |
tree | cf07db7780589ace49813853e9004b386fc79f21 /src | |
parent | d86cd012c0372c1746fed2a50b7cccca9de99be3 (diff) | |
download | gnunet-0e027fe10f89f0431e8b223528c9a13bdd991802.tar.gz gnunet-0e027fe10f89f0431e8b223528c9a13bdd991802.zip |
complete reservations API
Diffstat (limited to 'src')
-rw-r--r-- | src/ats/gnunet-service-ats.c | 7 | ||||
-rw-r--r-- | src/ats/gnunet-service-ats_reservations.c | 47 | ||||
-rw-r--r-- | src/ats/gnunet-service-ats_reservations.h | 37 |
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 | */ | ||
30 | struct GNUNET_TIME_Relative | 41 | struct GNUNET_TIME_Relative |
31 | GAS_reservations_reserve (const struct GNUNET_PeerIdentity *peer, | 42 | GAS_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 | */ | ||
59 | void | ||
60 | GAS_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 | */ | ||
70 | void | ||
71 | GAS_reservations_init () | ||
72 | { | ||
73 | } | ||
74 | |||
75 | |||
76 | /** | ||
77 | * Shutdown reservations subsystem. | ||
78 | */ | ||
79 | void | ||
80 | GAS_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 | */ | ||
40 | void | ||
41 | GAS_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 | */ | ||
32 | struct GNUNET_TIME_Relative | 56 | struct GNUNET_TIME_Relative |
33 | GAS_reservations_reserve (const struct GNUNET_PeerIdentity *peer, | 57 | GAS_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 | */ | ||
64 | void | ||
65 | GAS_reservations_init (void); | ||
66 | |||
67 | |||
68 | /** | ||
69 | * Shutdown reservations subsystem. | ||
70 | */ | ||
71 | void | ||
72 | GAS_reservations_done (void); | ||
73 | |||
37 | #endif | 74 | #endif |