1 /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
3 * Copyright (C) 2003 Novell, Inc.
4 * Copyright (C) 2008 Red Hat, Inc.
7 #ifndef SOUP_MESSAGE_QUEUE_H
8 #define SOUP_MESSAGE_QUEUE_H 1
12 #include <libsoup/soup-message.h>
13 #include <libsoup/soup-session.h>
17 typedef struct SoupMessageQueue SoupMessageQueue;
18 typedef struct SoupMessageQueueItem SoupMessageQueueItem;
20 struct SoupMessageQueueItem {
23 SoupMessageQueue *queue;
25 SoupSessionCallback callback;
26 gpointer callback_data;
28 GCancellable *cancellable;
29 SoupAddress *msg_addr;
31 guint resolving_msg_addr : 1;
36 SoupMessageQueueItem *prev, *next;
39 SoupMessageQueue *soup_message_queue_new (SoupSession *session);
40 SoupMessageQueueItem *soup_message_queue_append (SoupMessageQueue *queue,
42 SoupSessionCallback callback,
45 SoupMessageQueueItem *soup_message_queue_lookup (SoupMessageQueue *queue,
48 SoupMessageQueueItem *soup_message_queue_first (SoupMessageQueue *queue);
49 SoupMessageQueueItem *soup_message_queue_next (SoupMessageQueue *queue,
50 SoupMessageQueueItem *item);
52 void soup_message_queue_remove (SoupMessageQueue *queue,
53 SoupMessageQueueItem *item);
55 void soup_message_queue_item_ref (SoupMessageQueueItem *item);
56 void soup_message_queue_item_unref (SoupMessageQueueItem *item);
58 void soup_message_queue_destroy (SoupMessageQueue *queue);
62 #endif /* SOUP_MESSAGE_QUEUE_H */