From: Gabor X Toth <*@tg-x.net> Date: Tue, 23 Jul 2013 05:38:37 +0000 (+0000) Subject: multicast: group_member_remove() X-Git-Tag: initial-import-from-subversion-38251~8118 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=431b3a622137bfe03affbc5244cbdf63a4e27015;p=oweals%2Fgnunet.git multicast: group_member_remove() --- 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 */ {