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
10 #include "soup-connection.h"
11 #include "soup-message.h"
12 #include "soup-session.h"
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,
26 SOUP_MESSAGE_RESTARTING,
27 SOUP_MESSAGE_FINISHING,
29 } SoupMessageQueueItemState;
31 struct _SoupMessageQueueItem {
34 SoupMessageQueue *queue;
36 SoupSessionCallback callback;
37 gpointer callback_data;
38 GMainContext *async_context;
40 GCancellable *cancellable;
41 SoupAddress *proxy_addr;
44 GSimpleAsyncResult *result;
49 guint redirection_count : 29;
51 SoupMessageQueueItemState state;
56 SoupMessageQueueItem *prev, *next;
57 SoupMessageQueueItem *related;
60 SoupMessageQueue *soup_message_queue_new (SoupSession *session);
61 SoupMessageQueueItem *soup_message_queue_append (SoupMessageQueue *queue,
63 SoupSessionCallback callback,
66 SoupMessageQueueItem *soup_message_queue_lookup (SoupMessageQueue *queue,
69 SoupMessageQueueItem *soup_message_queue_first (SoupMessageQueue *queue);
70 SoupMessageQueueItem *soup_message_queue_next (SoupMessageQueue *queue,
71 SoupMessageQueueItem *item);
73 void soup_message_queue_remove (SoupMessageQueue *queue,
74 SoupMessageQueueItem *item);
76 void soup_message_queue_destroy (SoupMessageQueue *queue);
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);
85 #endif /* SOUP_MESSAGE_QUEUE_H */