1 /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
4 * Copyright 1999-2002 Ximian, Inc.
11 #include <libsoup/soup-types.h>
12 #include <libsoup/soup-misc.h>
31 GType soup_uri_get_type (void);
32 #define SOUP_TYPE_URI (soup_uri_get_type ())
34 #define SOUP_URI_SCHEME_HTTP _SOUP_ATOMIC_INTERN_STRING (_SOUP_URI_SCHEME_HTTP, "http")
35 #define SOUP_URI_SCHEME_HTTPS _SOUP_ATOMIC_INTERN_STRING (_SOUP_URI_SCHEME_HTTPS, "https")
36 #define SOUP_URI_SCHEME_FTP _SOUP_ATOMIC_INTERN_STRING (_SOUP_URI_SCHEME_FTP, "ftp")
37 #define SOUP_URI_SCHEME_FILE _SOUP_ATOMIC_INTERN_STRING (_SOUP_URI_SCHEME_FILE, "file")
38 #define SOUP_URI_SCHEME_DATA _SOUP_ATOMIC_INTERN_STRING (_SOUP_URI_SCHEME_DATA, "data")
39 #define SOUP_URI_SCHEME_RESOURCE _SOUP_ATOMIC_INTERN_STRING (_SOUP_URI_SCHEME_RESOURCE, "resource")
40 extern gpointer _SOUP_URI_SCHEME_HTTP, _SOUP_URI_SCHEME_HTTPS;
41 extern gpointer _SOUP_URI_SCHEME_FTP;
42 extern gpointer _SOUP_URI_SCHEME_FILE, _SOUP_URI_SCHEME_DATA, _SOUP_URI_SCHEME_RESOURCE;
44 SoupURI *soup_uri_new_with_base (SoupURI *base,
45 const char *uri_string);
46 SoupURI *soup_uri_new (const char *uri_string);
48 char *soup_uri_to_string (SoupURI *uri,
49 gboolean just_path_and_query);
51 SoupURI *soup_uri_copy (SoupURI *uri);
53 gboolean soup_uri_equal (SoupURI *uri1,
56 void soup_uri_free (SoupURI *uri);
58 char *soup_uri_encode (const char *part,
59 const char *escape_extra);
60 char *soup_uri_decode (const char *part);
61 char *soup_uri_normalize (const char *part,
62 const char *unescape_extra);
64 gboolean soup_uri_uses_default_port (SoupURI *uri);
66 SOUP_AVAILABLE_IN_2_32
67 const char *soup_uri_get_scheme (SoupURI *uri);
68 void soup_uri_set_scheme (SoupURI *uri,
70 SOUP_AVAILABLE_IN_2_32
71 const char *soup_uri_get_user (SoupURI *uri);
72 void soup_uri_set_user (SoupURI *uri,
74 SOUP_AVAILABLE_IN_2_32
75 const char *soup_uri_get_password (SoupURI *uri);
76 void soup_uri_set_password (SoupURI *uri,
77 const char *password);
78 SOUP_AVAILABLE_IN_2_32
79 const char *soup_uri_get_host (SoupURI *uri);
80 void soup_uri_set_host (SoupURI *uri,
82 SOUP_AVAILABLE_IN_2_32
83 guint soup_uri_get_port (SoupURI *uri);
84 void soup_uri_set_port (SoupURI *uri,
86 SOUP_AVAILABLE_IN_2_32
87 const char *soup_uri_get_path (SoupURI *uri);
88 void soup_uri_set_path (SoupURI *uri,
90 SOUP_AVAILABLE_IN_2_32
91 const char *soup_uri_get_query (SoupURI *uri);
92 void soup_uri_set_query (SoupURI *uri,
94 void soup_uri_set_query_from_form (SoupURI *uri,
96 void soup_uri_set_query_from_fields (SoupURI *uri,
97 const char *first_field,
98 ...) G_GNUC_NULL_TERMINATED;
99 SOUP_AVAILABLE_IN_2_32
100 const char *soup_uri_get_fragment (SoupURI *uri);
101 void soup_uri_set_fragment (SoupURI *uri,
102 const char *fragment);
104 SOUP_AVAILABLE_IN_2_28
105 SoupURI *soup_uri_copy_host (SoupURI *uri);
106 SOUP_AVAILABLE_IN_2_28
107 guint soup_uri_host_hash (gconstpointer key);
108 SOUP_AVAILABLE_IN_2_28
109 gboolean soup_uri_host_equal (gconstpointer v1,
112 #define SOUP_URI_IS_VALID(uri) ((uri) && (uri)->scheme && (uri)->path)
113 #define SOUP_URI_VALID_FOR_HTTP(uri) ((uri) && ((uri)->scheme == SOUP_URI_SCHEME_HTTP || (uri)->scheme == SOUP_URI_SCHEME_HTTPS) && (uri)->host && (uri)->path)
117 #endif /*SOUP_URI_H*/