multicast: group_member_remove()
authorGabor X Toth <*@tg-x.net>
Tue, 23 Jul 2013 05:38:37 +0000 (05:38 +0000)
committerGabor X Toth <*@tg-x.net>
Tue, 23 Jul 2013 05:38:37 +0000 (05:38 +0000)
src/include/gnunet_multicast_service.h

index 68d4944dee753e8a738b9f4f21dfe564e779f936..202d2f26b7b9fdb0b87b0f5aed5e08be4e96a514 100644 (file)
@@ -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 */
 {