Remove build warning
[platform/upstream/libsoup.git] / libsoup / soup-uri.h
1 /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
2
3 /* 
4  * Copyright 1999-2002 Ximian, Inc.
5  */
6
7
8 #ifndef  SOUP_URI_H
9 #define  SOUP_URI_H 1
10
11 #include <libsoup/soup-types.h>
12 #include <libsoup/soup-misc.h>
13
14 G_BEGIN_DECLS
15
16 struct _SoupURI {
17         const char *scheme;
18
19         char       *user;
20         char       *password;
21
22         char       *host;
23         guint       port;
24
25         char       *path;
26         char       *query;
27
28         char       *fragment;
29 };
30
31 GType       soup_uri_get_type              (void);
32 #define SOUP_TYPE_URI (soup_uri_get_type ())
33
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;
43
44 SoupURI    *soup_uri_new_with_base         (SoupURI    *base,
45                                             const char *uri_string);
46 SoupURI    *soup_uri_new                   (const char *uri_string);
47
48 char       *soup_uri_to_string             (SoupURI    *uri,
49                                             gboolean    just_path_and_query);
50
51 SoupURI    *soup_uri_copy                  (SoupURI    *uri);
52
53 gboolean    soup_uri_equal                 (SoupURI    *uri1,
54                                             SoupURI    *uri2);
55
56 void        soup_uri_free                  (SoupURI    *uri);
57
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);
63
64 gboolean    soup_uri_uses_default_port     (SoupURI    *uri);
65
66 SOUP_AVAILABLE_IN_2_32
67 const char *soup_uri_get_scheme            (SoupURI    *uri);
68 void        soup_uri_set_scheme            (SoupURI    *uri,
69                                             const char *scheme);
70 SOUP_AVAILABLE_IN_2_32
71 const char *soup_uri_get_user              (SoupURI    *uri);
72 void        soup_uri_set_user              (SoupURI    *uri,
73                                             const char *user);
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,
81                                             const char *host);
82 SOUP_AVAILABLE_IN_2_32
83 guint       soup_uri_get_port              (SoupURI    *uri);
84 void        soup_uri_set_port              (SoupURI    *uri,
85                                             guint       port);
86 SOUP_AVAILABLE_IN_2_32
87 const char *soup_uri_get_path              (SoupURI    *uri);
88 void        soup_uri_set_path              (SoupURI    *uri,
89                                             const char *path);
90 SOUP_AVAILABLE_IN_2_32
91 const char *soup_uri_get_query             (SoupURI    *uri);
92 void        soup_uri_set_query             (SoupURI    *uri,
93                                             const char *query);
94 void        soup_uri_set_query_from_form   (SoupURI    *uri,
95                                             GHashTable *form);
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);
103
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,
110                                             gconstpointer v2);
111
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)
114
115 G_END_DECLS
116
117 #endif /*SOUP_URI_H*/