Reapplying patch to disable attempts to use gtk-doc
[profile/ivi/libsoup2.4.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 "soup-connection.h"
11 #include "soup-message.h"
12 #include "soup-session.h"
13
14 G_BEGIN_DECLS
15
16 typedef enum {
17         SOUP_MESSAGE_STARTING,
18         SOUP_MESSAGE_AWAITING_CONNECTION,
19         SOUP_MESSAGE_GOT_CONNECTION,
20         SOUP_MESSAGE_CONNECTING,
21         SOUP_MESSAGE_CONNECTED,
22         SOUP_MESSAGE_TUNNELING,
23         SOUP_MESSAGE_TUNNELED,
24         SOUP_MESSAGE_READY,
25         SOUP_MESSAGE_RUNNING,
26         SOUP_MESSAGE_RESTARTING,
27         SOUP_MESSAGE_FINISHING,
28         SOUP_MESSAGE_FINISHED
29 } SoupMessageQueueItemState;
30
31 struct _SoupMessageQueueItem {
32         /*< public >*/
33         SoupSession *session;
34         SoupMessageQueue *queue;
35         SoupMessage *msg;
36         SoupSessionCallback callback;
37         gpointer callback_data;
38         GMainContext *async_context;
39
40         GCancellable *cancellable;
41         SoupAddress *proxy_addr;
42         SoupURI *proxy_uri;
43         SoupConnection *conn;
44         GSimpleAsyncResult *result;
45
46         guint paused            : 1;
47         guint new_api           : 1;
48         guint io_started        : 1;
49         guint redirection_count : 29;
50
51         SoupMessageQueueItemState state;
52
53         /*< private >*/
54         guint removed              : 1;
55         guint ref_count            : 31;
56         SoupMessageQueueItem *prev, *next;
57         SoupMessageQueueItem *related;
58 };
59
60 SoupMessageQueue     *soup_message_queue_new        (SoupSession          *session);
61 SoupMessageQueueItem *soup_message_queue_append     (SoupMessageQueue     *queue,
62                                                      SoupMessage          *msg,
63                                                      SoupSessionCallback   callback,
64                                                      gpointer              user_data);
65
66 SoupMessageQueueItem *soup_message_queue_lookup     (SoupMessageQueue     *queue,
67                                                      SoupMessage          *msg);
68
69 SoupMessageQueueItem *soup_message_queue_first      (SoupMessageQueue     *queue);
70 SoupMessageQueueItem *soup_message_queue_next       (SoupMessageQueue     *queue,
71                                                      SoupMessageQueueItem *item);
72
73 void                  soup_message_queue_remove     (SoupMessageQueue     *queue,
74                                                      SoupMessageQueueItem *item);
75
76 void                  soup_message_queue_destroy    (SoupMessageQueue     *queue);
77
78 void soup_message_queue_item_ref            (SoupMessageQueueItem *item);
79 void soup_message_queue_item_unref          (SoupMessageQueueItem *item);
80 void soup_message_queue_item_set_connection (SoupMessageQueueItem *item,
81                                              SoupConnection       *conn);
82
83 G_END_DECLS
84
85 #endif /* SOUP_MESSAGE_QUEUE_H */