From 431b3a622137bfe03affbc5244cbdf63a4e27015 Mon Sep 17 00:00:00 2001 From: Gabor X Toth <*@tg-x.net> Date: Tue, 23 Jul 2013 05:38:37 +0000 Subject: [PATCH] multicast: group_member_remove() --- src/include/gnunet_multicast_service.h | 39 ++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/src/include/gnunet_multicast_service.h b/src/include/gnunet_multicast_service.h index 68d4944de..202d2f26b 100644 --- a/src/include/gnunet_multicast_service.h +++ b/src/include/gnunet_multicast_service.h @@ -661,6 +661,45 @@ void GNUNET_MULTICAST_member_to_origin_cancel (struct GNUNET_MULTICAST_MemberRequestHandle *rh); +/** + * Handle to access multicast group operations for both the origin and members. + */ +struct GNUNET_MULTICAST_Group; + + +/** + * Convert a group @a origin to a @e group handle to access the @e group APIs. + * + * @param origin Group origin handle. + * @return Group handle, valid for as long as @a origin is valid. + */ +struct GNUNET_MULTICAST_Group * +GNUNET_MULTICAST_origin_get_group (struct GNUNET_MULTICAST_Origin *origin); + + +/** + * Convert @a member to a @e group handle to access the @e group APIs. + * + * @param member Member handle. + * @return Group handle, valid for as long as @a member is valid. + */ +struct GNUNET_MULTICAST_Group * +GNUNET_MULTICAST_member_get_group (struct GNUNET_MULTICAST_Member *member); + + +/** + * Remove a peer from the group. + * + * After a message was received notifying about a leaving member, remove the + * member from the multicast group. Fragments with a greater @a message_id than + * the specified one won't be transmitted to the member anymore, but the + * transmission of lower or equal ones will still be performed. + */ +void +GNUNET_MULTICAST_group_member_remove (struct GNUNET_MULTICAST_Group *group, + const struct GNUNET_PeerIdentity *peer, + uint64_t message_id); + #if 0 /* keep Emacsens' auto-indent happy */ { -- 2.25.1