Go to the source code of this file.
Functions | |
void | enqueue_message_to_room (struct GNUNET_MESSENGER_Room *room, const struct GNUNET_HashCode *epoch, struct GNUNET_MESSENGER_Message *message, struct GNUNET_MESSENGER_Message *transcript, enum GNUNET_GenericReturnValue sync) |
Enqueus a message and its optional transcript for sending it to a given room and epoch. More... | |
void | request_message_from_room (const struct GNUNET_MESSENGER_Room *room, const struct GNUNET_HashCode *hash) |
Requests a specific message from a given room which can be identified by its hash. More... | |
void | require_message_from_room (struct GNUNET_MESSENGER_Room *room, const struct GNUNET_HashCode *hash) |
Requires a specific message in a given room which can be identified by its hash. More... | |
void enqueue_message_to_room | ( | struct GNUNET_MESSENGER_Room * | room, |
const struct GNUNET_HashCode * | epoch, | ||
struct GNUNET_MESSENGER_Message * | message, | ||
struct GNUNET_MESSENGER_Message * | transcript, | ||
enum GNUNET_GenericReturnValue | sync | ||
) |
Enqueus a message and its optional transcript for sending it to a given room and epoch.
[in,out] | room | Room |
[in] | epoch | Hash of epoch |
[in] | message | Message |
[in] | transcript | Transcript of message or NULL |
[in] | sync | GNUNET_YES to enforce syncing, otherwise GNUNET_NO |
Definition at line 1065 of file messenger_api.c.
References dequeue_messages_from_room(), enqueue_to_messages(), get_handle_key(), GNUNET_assert, GNUNET_YES, GNUNET_MESSENGER_Room::handle, is_message_session_bound(), is_room_available(), key, GNUNET_MESSENGER_Room::last_epoch, GNUNET_MESSENGER_Room::queue, send_sync_room(), and GNUNET_MESSENGER_Room::wait_for_sync.
Referenced by delete_room_message(), GNUNET_MESSENGER_close_room(), handle_member_id(), handle_miss_message(), iterate_send_key_to_room(), iterate_send_name_to_room(), keep_subscription_alive(), send_epoch_message(), and send_message_to_room_with_key().
void request_message_from_room | ( | const struct GNUNET_MESSENGER_Room * | room, |
const struct GNUNET_HashCode * | hash | ||
) |
Requests a specific message from a given room which can be identified by its hash.
[in] | room | Room |
[in] | hash | Hash of message |
Definition at line 1648 of file messenger_api.c.
References env, get_room_key(), GNUNET_assert, GNUNET_ERROR_TYPE_DEBUG, GNUNET_h2s(), GNUNET_is_zero, GNUNET_log, GNUNET_memcpy, GNUNET_MESSAGE_TYPE_MESSENGER_ROOM_GET_MESSAGE, GNUNET_MQ_msg, GNUNET_MQ_send(), GNUNET_MESSENGER_Room::handle, GNUNET_MESSENGER_Handle::mq, and msg.
Referenced by GNUNET_MESSENGER_get_message(), and iterate_room_request().
void require_message_from_room | ( | struct GNUNET_MESSENGER_Room * | room, |
const struct GNUNET_HashCode * | hash | ||
) |
Requires a specific message in a given room which can be identified by its hash.
The required message will be requested asynchronously.
[in] | room | Room |
[in] | hash | Hash of message |
Definition at line 1122 of file messenger_api_room.c.
References get_room_message(), GNUNET_assert, GNUNET_CONTAINER_multihashmap_put(), GNUNET_CONTAINER_MULTIHASHMAPOPTION_REPLACE, GNUNET_is_zero, GNUNET_OK, GNUNET_SCHEDULER_add_with_priority(), GNUNET_SCHEDULER_PRIORITY_BACKGROUND, handle_room_request_task(), GNUNET_MESSENGER_Room::request_task, and GNUNET_MESSENGER_Room::requests.
Referenced by create_epoch(), GNUNET_MESSENGER_get_message(), handle_join_message(), handle_leave_message(), and handle_merge_message().