+2003-08-27 Dan Winship <danw@ximian.com>
+
+ * libsoup/soup-types.h: New header with typedefs, to avoid
+ #include loops among other headers.
+
+ * libsoup/Makefile.am (libsoupinclude_HEADERS): add it
+
+ * libsoup/*.[ch], tests/*.c: Update for soup-types.h
+
2003-08-26 Dan Winship <danw@ximian.com>
* libsoup/soup-message-client-io.c (soup_message_write_request,
soup-server-message.h \
soup-server.h \
soup-socket.h \
+ soup-types.h \
soup-uri.h
lib_LTLIBRARIES = libsoup-2.2.la
#ifndef SOUP_ADDRESS_H
#define SOUP_ADDRESS_H
-#include <glib-object.h>
#include <sys/types.h>
#include <sys/socket.h>
-#include <libsoup/soup-error.h>
+#include <libsoup/soup-types.h>
#define SOUP_TYPE_ADDRESS (soup_address_get_type ())
#define SOUP_ADDRESS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SOUP_TYPE_ADDRESS, SoupAddress))
typedef struct SoupAddressPrivate SoupAddressPrivate;
-typedef struct {
+struct SoupAddress {
GObject parent;
SoupAddressPrivate *priv;
-} SoupAddress;
+};
typedef struct {
GObjectClass parent_class;
#ifndef SOUP_AUTH_H
#define SOUP_AUTH_H 1
-#include <glib-object.h>
-#include <libsoup/soup-message.h>
-#include <libsoup/soup-uri.h>
+#include <libsoup/soup-types.h>
#define SOUP_TYPE_AUTH (soup_auth_get_type ())
#define SOUP_AUTH(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SOUP_TYPE_AUTH, SoupAuth))
#include <time.h>
-#include <glib-object.h>
-#include <libsoup/soup-socket.h>
-#include <libsoup/soup-uri.h>
+#include <libsoup/soup-types.h>
#define SOUP_TYPE_CONNECTION (soup_connection_get_type ())
#define SOUP_CONNECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SOUP_TYPE_CONNECTION, SoupConnection))
typedef struct SoupConnectionPrivate SoupConnectionPrivate;
-typedef struct {
+struct SoupConnection {
GObject parent;
SoupConnectionPrivate *priv;
-} SoupConnection;
+};
typedef struct {
GObjectClass parent_class;
#include "soup-auth.h"
#include "soup-auth-ntlm.h"
+#include "soup-connection.h"
#include "soup-context.h"
#include "soup-message-private.h"
#include "soup-private.h"
#ifndef SOUP_CONTEXT_H
#define SOUP_CONTEXT_H 1
-#include <glib-object.h>
-#include <libsoup/soup-connection.h>
-#include <libsoup/soup-uri.h>
+#include <libsoup/soup-types.h>
#define SOUP_TYPE_CONTEXT (soup_context_get_type ())
#define SOUP_CONTEXT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SOUP_TYPE_CONTEXT, SoupContext))
typedef struct SoupContextPrivate SoupContextPrivate;
-typedef struct {
+struct SoupContext {
GObject parent;
SoupContextPrivate *priv;
-} SoupContext;
+};
typedef struct {
GObjectClass parent_class;
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
/*
- * soup-error.h: HTTP Errorcode and Errorclass definitions
+ * soup-error.h: HTTP error code and error class definitions
*
- * Authors:
- * Alex Graveley (alex@ximian.com)
- *
- * Copyright (C) 2001-2002, Ximian, Inc.
+ * Copyright (C) 2001-2003, Ximian, Inc.
*/
#ifndef SOUP_ERROR_H
#include "soup-message-private.h"
#include "soup-misc.h"
#include "soup-private.h"
+#include "soup-socket.h"
typedef struct {
guint idle_tag;
#include <string.h>
#include "soup-auth.h"
+#include "soup-connection.h"
#include "soup-error.h"
#include "soup-marshal.h"
#include "soup-message.h"
#ifndef SOUP_MESSAGE_H
#define SOUP_MESSAGE_H 1
-#include <glib-object.h>
-#include <libsoup/soup-error.h>
+#include <libsoup/soup-types.h>
#include <libsoup/soup-method.h>
-#include <libsoup/soup-uri.h>
#define SOUP_TYPE_MESSAGE (soup_message_get_type ())
#define SOUP_MESSAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SOUP_TYPE_MESSAGE, SoupMessage))
guint length;
} SoupDataBuffer;
-typedef struct {
+struct SoupMessage {
GObject parent;
SoupMessagePrivate *priv;
SoupDataBuffer response;
GHashTable *response_headers;
-} SoupMessage;
+};
typedef struct {
GObjectClass parent_class;
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
/*
- * soup-private.h: Asyncronous Callback-based HTTP Request Queue.
- *
- * Authors:
- * Alex Graveley (alex@ximian.com)
- *
- * Copyright (C) 2000-2002, Ximian, Inc.
- */
-
-/*
- * All the things Soup users shouldn't need to know about except under
- * extraneous circumstances.
+ * Copyright (C) 2000-2003, Ximian, Inc.
*/
#ifndef SOUP_PRIVATE_H
#include <config.h>
#endif
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-
+#include <libsoup/soup-types.h>
#include <libsoup/soup-auth.h>
-#include <libsoup/soup-context.h>
-#include <libsoup/soup-message.h>
-#include <libsoup/soup-server.h>
-#include <libsoup/soup-server-message.h>
-#include <libsoup/soup-socket.h>
-#include <libsoup/soup-uri.h>
+#include <libsoup/soup-misc.h>
#ifdef __cplusplus
extern "C" {
#include "soup-queue.h"
#include "soup-auth.h"
+#include "soup-connection.h"
#include "soup-message.h"
#include "soup-message-private.h"
#include "soup-context.h"
#include "soup-headers.h"
#include "soup-misc.h"
#include "soup-private.h"
-#include "soup-ssl.h"
+#include "soup-socket.h"
static GSList *soup_active_requests = NULL, *soup_active_request_next = NULL;
/*
* soup-server-auth.c: Server-side authentication handling
*
- * Authors:
- * Alex Graveley (alex@ximian.com)
- *
- * Copyright (C) 2001-2002, Ximian, Inc.
+ * Copyright (C) 2001-2003, Ximian, Inc.
*/
#include <glib.h>
#include "md5-utils.h"
#include "soup-headers.h"
+#include "soup-misc.h"
+#include "soup-uri.h"
typedef struct {
const gchar *scheme;
/*
* soup-server-auth.h: Server-side authentication handling
*
- * Authors:
- * Alex Graveley (alex@ximian.com)
- *
- * Copyright (C) 2001-2002, Ximian, Inc.
+ * Copyright (C) 2001-2003, Ximian, Inc.
*/
#ifndef SOUP_SERVER_AUTH_H
#define SOUP_SERVER_AUTH_H 1
-#include <glib.h>
-#include <libsoup/soup-message.h>
-#include <libsoup/soup-misc.h>
-
-typedef union _SoupServerAuth SoupServerAuth;
-typedef struct _SoupServerAuthContext SoupServerAuthContext;
+#include <libsoup/soup-types.h>
typedef gboolean (*SoupServerAuthCallbackFn) (SoupServerAuthContext *auth_ctx,
SoupServerAuth *auth,
SoupMessage *msg,
gpointer data);
-struct _SoupServerAuthContext {
+struct SoupServerAuthContext {
guint types;
SoupServerAuthCallbackFn callback;
gpointer user_data;
const gchar *request_method;
} SoupServerAuthDigest;
-union _SoupServerAuth {
+union SoupServerAuth {
SoupAuthType type;
SoupServerAuthBasic basic;
SoupServerAuthDigest digest;
#include "soup-server-message.h"
#include "soup-message-private.h"
#include "soup-private.h"
+#include "soup-server.h"
+#include "soup-socket.h"
struct SoupServerMessagePrivate {
SoupServer *server;
#define SOUP_SERVER_MESSAGE_H 1
#include <libsoup/soup-message.h>
-#include <libsoup/soup-server.h>
#define SOUP_TYPE_SERVER_MESSAGE (soup_server_message_get_type ())
#define SOUP_SERVER_MESSAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SOUP_TYPE_SERVER_MESSAGE, SoupServerMessage))
typedef struct SoupServerMessagePrivate SoupServerMessagePrivate;
-typedef struct {
+struct SoupServerMessage {
SoupMessage parent;
SoupServerMessagePrivate *priv;
-} SoupServerMessage;
+};
typedef struct {
SoupMessageClass parent_class;
#include <unistd.h>
#include "soup-server.h"
+#include "soup-address.h"
#include "soup-headers.h"
#include "soup-private.h"
#include "soup-message-private.h"
-#include "soup-ssl.h"
+#include "soup-server-auth.h"
+#include "soup-server-message.h"
+#include "soup-socket.h"
#define PARENT_TYPE G_TYPE_OBJECT
static GObjectClass *parent_class;
SoupServerHandler *default_handler;
};
-struct SoupServerMessage {
- SoupMessage *msg;
- GSList *chunks; /* CONTAINS: SoupDataBuffer* */
- gboolean started;
- gboolean finished;
-};
-
static void
init (GObject *object)
{
#ifndef SOUP_SERVER_H
#define SOUP_SERVER_H 1
-#include <glib.h>
-#include <libsoup/soup-message.h>
+#include <libsoup/soup-types.h>
#include <libsoup/soup-method.h>
-#include <libsoup/soup-misc.h>
-#include <libsoup/soup-socket.h>
#include <libsoup/soup-uri.h>
-#include <libsoup/soup-server-auth.h>
#define SOUP_TYPE_SERVER (soup_server_get_type ())
#define SOUP_SERVER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SOUP_TYPE_SERVER, SoupServer))
typedef struct SoupServerPrivate SoupServerPrivate;
-typedef struct {
+struct SoupServer {
GObject parent;
SoupServerPrivate *priv;
-} SoupServer;
+};
typedef struct {
GObjectClass parent_class;
#include <string.h>
#include <unistd.h>
+#include "soup-address.h"
#include "soup-private.h"
#include "soup-socket.h"
#include "soup-marshal.h"
#include "soup-ssl.h"
+#include <sys/types.h>
#include <sys/socket.h>
+#include <netinet/in.h>
#include <netinet/tcp.h>
#define PARENT_TYPE G_TYPE_OBJECT
#ifndef SOUP_SOCKET_H
#define SOUP_SOCKET_H 1
-#include <glib-object.h>
-#include <libsoup/soup-address.h>
-#include <libsoup/soup-error.h>
+#include <libsoup/soup-types.h>
#define SOUP_TYPE_SOCKET (soup_socket_get_type ())
#define SOUP_SOCKET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SOUP_TYPE_SOCKET, SoupSocket))
typedef struct SoupSocketPrivate SoupSocketPrivate;
-typedef struct {
+struct SoupSocket {
GObject parent;
SoupSocketPrivate *priv;
-} SoupSocket;
+};
typedef struct {
GObjectClass parent_class;
--- /dev/null
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+/*
+ * Copyright (C) 2003, Ximian, Inc.
+ */
+
+#ifndef SOUP_TYPES_H
+#define SOUP_TYPES_H 1
+
+#include <glib/gtypes.h>
+#include <glib-object.h>
+
+#include <libsoup/soup-error.h>
+
+typedef struct SoupAddress SoupAddress;
+typedef struct SoupConnection SoupConnection;
+typedef struct SoupContext SoupContext;
+typedef struct SoupMessage SoupMessage;
+typedef struct SoupServer SoupServer;
+typedef union SoupServerAuth SoupServerAuth;
+typedef struct SoupServerAuthContext SoupServerAuthContext;
+typedef struct SoupServerMessage SoupServerMessage;
+typedef struct SoupSocket SoupSocket;
+typedef struct SoupUri SoupUri;
+
+#endif
#ifndef SOUP_URI_H
#define SOUP_URI_H 1
-#include <glib.h>
+#include <libsoup/soup-types.h>
typedef GQuark SoupProtocol;
#define SOUP_PROTOCOL_HTTP (g_quark_from_static_string ("http"))
#define SOUP_PROTOCOL_HTTPS (g_quark_from_static_string ("https"))
-typedef struct {
+struct SoupUri {
SoupProtocol protocol;
char *user;
char *query;
char *fragment;
-} SoupUri;
+};
SoupUri *soup_uri_new_with_base (const SoupUri *base,
const char *uri_string);
#include <string.h>
#include <unistd.h>
-#include <libsoup/soup.h>
+#include <libsoup/soup-address.h>
+#include <libsoup/soup-socket.h>
static void rev_read (SoupSocket *sock, GString *buf);
static void rev_write (SoupSocket *sock, GString *buf);
#include <unistd.h>
#include <glib.h>
+#include <libsoup/soup-address.h>
#include <libsoup/soup-message.h>
#include <libsoup/soup-server.h>
#include <libsoup/soup-server-message.h>
#include <unistd.h>
#include <glib.h>
+#include <libsoup/soup-address.h>
#include <libsoup/soup-message.h>
#include <libsoup/soup-server.h>
#include <libsoup/soup-server-message.h>
int
main (int argc, char **argv)
{
- SoupUri *base_uri, *uri;
+ SoupUri *base_uri;
char *uri_string;
int i, errs = 0;