Boston, MA 02111-1307, USA.
*/
-/**
+/**
* @file multicast/multicast_api.c
* @brief multicast service; establish tunnels to distant peers
* @author Christian Grothoff
#include "gnunet_multicast_service.h"
#include "multicast.h"
-/**
+/**
* Handle for a request to send a message to all multicast group members
* (from the origin).
*/
};
-/**
+/**
* Handle for the origin of a multicast group.
*/
struct GNUNET_MULTICAST_Origin
};
-/**
+/**
* Handle for a message to be delivered from a member to the origin.
*/
struct GNUNET_MULTICAST_MemberRequestHandle
};
-/**
+/**
* Opaque handle for a multicast group member.
*/
struct GNUNET_MULTICAST_Member
GNUNET_NETWORK_STRUCT_BEGIN
-/**
+/**
* Header of a request from a member to the origin.
*/
struct GNUNET_MULTICAST_RequestHeader
{
- /**
+ /**
* Header for all requests from a member to the origin.
*/
struct GNUNET_MessageHeader header;
*/
struct GNUNET_CRYPTO_EccPublicSignKey member_key;
- /**
+ /**
* ECC signature of the request fragment.
*
* Signature must match the public key of the multicast group.
*/
struct GNUNET_CRYPTO_EccSignature signature;
- /**
+ /**
* Purpose for the signature and size of the signed data.
*/
struct GNUNET_CRYPTO_EccSignaturePurpose purpose;
- /**
+ /**
* Number of the request fragment, monotonically increasing.
*/
uint64_t fragment_id GNUNET_PACKED;
- /**
+ /**
* Byte offset of this @e fragment of the @e request.
*/
uint64_t fragment_offset GNUNET_PACKED;
- /**
+ /**
* Number of the request this fragment belongs to.
*
* Set in GNUNET_MULTICAST_origin_to_all().
/* Followed by request body. */
};
-/**
+/**
* Header of a join request sent to the origin or another member.
*/
struct GNUNET_MULTICAST_JoinRequest
{
- /**
+ /**
* Header for the join request.
*/
struct GNUNET_MessageHeader header;
- /**
+ /**
* ECC signature of the rest of the fields of the join request.
*
* Signature must match the public key of the joining member.
*/
struct GNUNET_CRYPTO_EccSignature signature;
- /**
+ /**
* Purpose for the signature and size of the signed data.
*/
struct GNUNET_CRYPTO_EccSignaturePurpose purpose;
GNUNET_NETWORK_STRUCT_END
-/**
+/**
* Handle that identifies a join request.
*
* Used to match calls to #GNUNET_MULTICAST_JoinCallback to the
};
-/**
+/**
* Function to call with the decision made for a join request.
*
* Must be called once and only once in response to an invocation of the
}
-/**
+/**
* Handle to pass back for the answer of a membership test.
*/
struct GNUNET_MULTICAST_MembershipTestHandle
};
-/**
+/**
* Call informing multicast about the decision taken for a membership test.
*
* @param mth Handle that was given for the query.
}
-/**
+/**
* Opaque handle to a replay request from the multicast service.
*/
struct GNUNET_MULTICAST_ReplayHandle
};
-/**
+/**
* Replay a message fragment for the multicast group.
*
* @param rh Replay handle identifying which replay operation was requested.
}
-/**
+/**
* Indicate the end of the replay session.
*
* Invalidates the replay handle.
}
-/**
+/**
* Replay a message for the multicast group.
*
* @param rh Replay handle identifying which replay operation was requested.
}
-/**
+/**
* Start a multicast group.
*
* Will advertise the origin in the P2P overlay network under the respective
}
-/**
+/**
* Send a message to the multicast group.
*
* @param origin Handle to the multicast group.
}
-/**
+/**
* Resume message transmission to multicast group.
*
* @param mh Request to cancel.
}
-/**
+/**
* Cancel request for message transmission to multicast group.
*
* @param mh Request to cancel.
}
-/**
+/**
* Stop a multicast group.
*
* @param origin Multicast group to stop.
}
-/**
+/**
* Join a multicast group.
*
* The entity joining is always the local peer. Further information about the
}
-/**
+/**
* Handle for a replay request.
*/
struct GNUNET_MULTICAST_MemberReplayHandle
};
-/**
+/**
* Request a fragment to be replayed by fragment ID.
*
* Useful if messages below the @e max_known_fragment_id given when joining are
}
-/**
+/**
* Request a message fragment to be replayed.
*
* Useful if messages below the @e max_known_fragment_id given when joining are
}
-/**
+/**
* Cancel a replay request.
*
* @param rh Request to cancel.
}
-/**
+/**
* Part a multicast group.
*
* Disconnects from all group members and invalidates the @a member handle.
}
-/**
+/**
* Send a message to the origin of the multicast group.
- *
+ *
* @param member Membership handle.
* @param message_id Application layer ID for the message. Opaque to multicast.
* @param notify Callback to call to get the message.
}
-/**
+/**
* Resume message transmission to origin.
*
* @param rh Request to cancel.
}
-/**
+/**
* Cancel request for message transmission to origin.
*
* @param rh Request to cancel.