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_GOT_CONNECTION,
19 SOUP_MESSAGE_CONNECTING,
20 SOUP_MESSAGE_CONNECTED,
21 SOUP_MESSAGE_TUNNELING,
22 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;
51 guint redirection_count : 28;
53 SoupMessageQueueItemState state;
58 SoupMessageQueueItem *prev, *next;
59 SoupMessageQueueItem *related;
62 SoupMessageQueue *soup_message_queue_new (SoupSession *session);
63 SoupMessageQueueItem *soup_message_queue_append (SoupMessageQueue *queue,
65 SoupSessionCallback callback,
68 SoupMessageQueueItem *soup_message_queue_lookup (SoupMessageQueue *queue,
71 SoupMessageQueueItem *soup_message_queue_first (SoupMessageQueue *queue);
72 SoupMessageQueueItem *soup_message_queue_next (SoupMessageQueue *queue,
73 SoupMessageQueueItem *item);
75 void soup_message_queue_remove (SoupMessageQueue *queue,
76 SoupMessageQueueItem *item);
78 void soup_message_queue_destroy (SoupMessageQueue *queue);
80 void soup_message_queue_item_ref (SoupMessageQueueItem *item);
81 void soup_message_queue_item_unref (SoupMessageQueueItem *item);
85 #endif /* SOUP_MESSAGE_QUEUE_H */