Change the SoupURI properties to SoupAddress properties.
[platform/upstream/libsoup.git] / libsoup / soup-message-queue.h
1 /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
2 /*
3  * Copyright (C) 2003 Novell, Inc.
4  * Copyright (C) 2008 Red Hat, Inc.
5  */
6
7 #ifndef SOUP_MESSAGE_QUEUE_H
8 #define SOUP_MESSAGE_QUEUE_H 1
9
10 #include <glib.h>
11 #include <gio/gio.h>
12 #include <libsoup/soup-message.h>
13 #include <libsoup/soup-session.h>
14
15 G_BEGIN_DECLS
16
17 typedef struct SoupMessageQueue SoupMessageQueue; 
18 typedef struct SoupMessageQueueItem SoupMessageQueueItem;
19
20 struct SoupMessageQueueItem {
21         /*< public >*/
22         SoupSession *session;
23         SoupMessageQueue *queue;
24         SoupMessage *msg;
25         SoupSessionCallback callback;
26         gpointer callback_data;
27
28         GCancellable *cancellable;
29         SoupAddress *msg_addr;
30
31         guint resolving_msg_addr   : 1;
32
33         /*< private >*/
34         guint removed              : 1;
35         guint ref_count            : 30;
36         SoupMessageQueueItem *prev, *next;
37 };
38
39 SoupMessageQueue     *soup_message_queue_new        (SoupSession          *session);
40 SoupMessageQueueItem *soup_message_queue_append     (SoupMessageQueue     *queue,
41                                                      SoupMessage          *msg,
42                                                      SoupSessionCallback   callback,
43                                                      gpointer              user_data);
44
45 SoupMessageQueueItem *soup_message_queue_lookup     (SoupMessageQueue     *queue,
46                                                      SoupMessage          *msg);
47
48 SoupMessageQueueItem *soup_message_queue_first      (SoupMessageQueue     *queue);
49 SoupMessageQueueItem *soup_message_queue_next       (SoupMessageQueue     *queue,
50                                                      SoupMessageQueueItem *item);
51
52 void                  soup_message_queue_remove     (SoupMessageQueue     *queue,
53                                                      SoupMessageQueueItem *item);
54
55 void                  soup_message_queue_item_ref   (SoupMessageQueueItem *item);
56 void                  soup_message_queue_item_unref (SoupMessageQueueItem *item);
57
58 void                  soup_message_queue_destroy    (SoupMessageQueue     *queue);
59
60 G_END_DECLS
61
62 #endif /* SOUP_MESSAGE_QUEUE_H */