/** * inf_chat_buffer_get_message: * @buffer: A #InfChatBuffer. * @n: The index of the message to obtain. * * Returns the message with the given index from the buffer. The oldest * message in the buffer has index 0, and the most recent one has index * inf_chat_buffer_get_n_messages() - 1. * * Returns: The #InfChatBufferMessage with the given index. */ const InfChatBufferMessage* inf_chat_buffer_get_message(InfChatBuffer* buffer, guint n) { InfChatBufferPrivate* priv; g_return_val_if_fail(INF_IS_CHAT_BUFFER(buffer), NULL); g_return_val_if_fail(n < inf_chat_buffer_get_n_messages(buffer), NULL); priv = INF_CHAT_BUFFER_PRIVATE(buffer); return &priv->messages[ (priv->first_message + n) % priv->size ]; }
static void infinoted_plugin_document_stream_sync_chat( InfinotedPluginDocumentStreamStream* stream) { InfChatBuffer* buffer; guint n_messages; guint i; const InfChatBufferMessage* message; g_assert(INF_IS_CHAT_BUFFER(stream->buffer)); buffer = INF_CHAT_BUFFER(stream->buffer); n_messages = inf_chat_buffer_get_n_messages(buffer); for(i = 0; i < n_messages; ++i) { message = inf_chat_buffer_get_message(buffer, i); infinoted_plugin_document_stream_chat_send_message(stream, message); } }