X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Finclude%2Fgnunet_rps_service.h;h=8ae9f1e936fc56b21fa5cd2f4eafb7122ccd3317;hb=a5a54c51011a9498e72b2a9341b35333c6beef1a;hp=252188c627a5cb57ae5d2fef710c2bfdfcebc717;hpb=e91d46cdbbc97414968fa751fd1f596757c56875;p=oweals%2Fgnunet.git diff --git a/src/include/gnunet_rps_service.h b/src/include/gnunet_rps_service.h index 252188c62..8ae9f1e93 100644 --- a/src/include/gnunet_rps_service.h +++ b/src/include/gnunet_rps_service.h @@ -14,6 +14,8 @@ You should have received a copy of the GNU Affero General Public License along with this program. If not, see . + + SPDX-License-Identifier: AGPL3.0-or-later */ /** @@ -63,32 +65,38 @@ typedef void (* GNUNET_RPS_NotifyReadyCB) (void *cls, uint64_t num_peers, const struct GNUNET_PeerIdentity *peers); + /** - * Callback called when view was updated + * Connect to the rps service * - * @param num_peers the number of peers returned - * @param peers array with num_peers PeerIDs + * @param cfg configuration to use + * @return handle to the rps service */ -typedef void (* GNUNET_RPS_ViewUpdateCB) (void *cls, - uint64_t num_peers, - const struct GNUNET_PeerIdentity *peers); + struct GNUNET_RPS_Handle * +GNUNET_RPS_connect (const struct GNUNET_CONFIGURATION_Handle *cfg); + /** - * Callback called when a peer from the biased stream was received + * @brief Start a sub with the given shared value * - * @param peer The received peer + * @param h Handle to rps + * @param shared_value The shared value that defines the members of the sub (-gorup) */ -typedef void (* GNUNET_RPS_StreamInputCB) (void *cls, - const struct GNUNET_PeerIdentity *peer); +void +GNUNET_RPS_sub_start (struct GNUNET_RPS_Handle *h, + const char *shared_value); + /** - * Connect to the rps service + * @brief Stop a sub with the given shared value * - * @param cfg configuration to use - * @return handle to the rps service + * @param h Handle to rps + * @param shared_value The shared value that defines the members of the sub (-gorup) */ - struct GNUNET_RPS_Handle * -GNUNET_RPS_connect (const struct GNUNET_CONFIGURATION_Handle *cfg); +void +GNUNET_RPS_sub_stop (struct GNUNET_RPS_Handle *h, + const char *shared_value); + /** * Request n random peers. @@ -166,7 +174,7 @@ GNUNET_RPS_act_malicious (struct GNUNET_RPS_Handle *h, void GNUNET_RPS_view_request (struct GNUNET_RPS_Handle *rps_handle, uint32_t num_updates, - GNUNET_RPS_ViewUpdateCB view_update_cb, + GNUNET_RPS_NotifyReadyCB view_update_cb, void *cls); @@ -174,18 +182,24 @@ GNUNET_RPS_view_request (struct GNUNET_RPS_Handle *rps_handle, * Request biased stream of peers that are being put into the sampler * * @param rps_handle handle to the rps service - * @param num_req_peers number of peers we want to receive - * (0 for infinite updates) * @param cls a closure that will be given to the callback * @param ready_cb the callback called when the peers are available */ -void +struct GNUNET_RPS_StreamRequestHandle * GNUNET_RPS_stream_request (struct GNUNET_RPS_Handle *rps_handle, - uint32_t num_updates, - GNUNET_RPS_StreamInputCB stream_input_cb, + GNUNET_RPS_NotifyReadyCB stream_input_cb, void *cls); +/** + * @brief Cancel a specific request for updates from the biased peer stream + * + * @param srh The request handle to cancel + */ +void +GNUNET_RPS_stream_cancel (struct GNUNET_RPS_StreamRequestHandle *srh); + + /** * Disconnect from the rps service *