00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef AXUTIL_URI_H
00020 #define AXUTIL_URI_H
00021
00028 #include <axutil_string.h>
00029 #include <axutil_utils.h>
00030 #include <axutil_utils_defines.h>
00031 #include <axutil_env.h>
00032
00033 #ifdef __cplusplus
00034 extern "C"
00035 {
00036 #endif
00037
00044 #define AXIS2_URI_FTP_DEFAULT_PORT 21
00046 #define AXIS2_URI_SSH_DEFAULT_PORT 22
00048 #define AXIS2_URI_TELNET_DEFAULT_PORT 23
00050 #define AXIS2_URI_GOPHER_DEFAULT_PORT 70
00052 #define AXIS2_URI_HTTP_DEFAULT_PORT 80
00054 #define AXIS2_URI_POP_DEFAULT_PORT 110
00056 #define AXIS2_URI_NNTP_DEFAULT_PORT 119
00058 #define AXIS2_URI_IMAP_DEFAULT_PORT 143
00060 #define AXIS2_URI_PROSPERO_DEFAULT_PORT 191
00062 #define AXIS2_URI_WAIS_DEFAULT_PORT 210
00064 #define AXIS2_URI_LDAP_DEFAULT_PORT 389
00066 #define AXIS2_URI_HTTPS_DEFAULT_PORT 443
00068 #define AXIS2_URI_RTSP_DEFAULT_PORT 554
00070 #define AXIS2_URI_SNEWS_DEFAULT_PORT 563
00072 #define AXIS2_URI_ACAP_DEFAULT_PORT 674
00074 #define AXIS2_URI_NFS_DEFAULT_PORT 2049
00076 #define AXIS2_URI_TIP_DEFAULT_PORT 3372
00078 #define AXIS2_URI_SIP_DEFAULT_PORT 5060
00083 #define AXIS2_URI_UNP_OMITSITEPART (1U<<0)
00084
00086 #define AXIS2_URI_UNP_OMITUSER (1U<<1)
00087
00089 #define AXIS2_URI_UNP_OMITPASSWORD (1U<<2)
00090
00092 #define AXIS2_URI_UNP_OMITUSERINFO (AXIS2_URI_UNP_OMITUSER | \
00093 AXIS2_URI_UNP_OMITPASSWORD)
00094
00096 #define AXIS2_URI_UNP_REVEALPASSWORD (1U<<3)
00097
00099 #define AXIS2_URI_UNP_OMITPATHINFO (1U<<4)
00100
00102 #define AXIS2_URI_UNP_OMITQUERY_ONLY (1U<<5)
00103
00105 #define AXIS2_URI_UNP_OMITFRAGMENT_ONLY (1U<<6)
00106
00108 #define AXIS2_URI_UNP_OMITQUERY (AXIS2_URI_UNP_OMITQUERY_ONLY | \
00109 AXIS2_URI_UNP_OMITFRAGMENT_ONLY)
00110
00112 typedef unsigned short axis2_port_t;
00113
00114
00115 typedef struct axutil_uri axutil_uri_t;
00116
00122 AXIS2_EXTERN axutil_uri_t *AXIS2_CALL
00123 axutil_uri_create(
00124 const axutil_env_t * env);
00125
00132 AXIS2_EXTERN axis2_port_t AXIS2_CALL
00133 axutil_uri_port_of_scheme(
00134 const axis2_char_t * scheme_str);
00135
00144 AXIS2_EXTERN axutil_uri_t *AXIS2_CALL
00145 axutil_uri_parse_string(
00146 const axutil_env_t * env,
00147 const axis2_char_t * uri);
00148
00155 AXIS2_EXTERN axutil_uri_t *AXIS2_CALL
00156 axutil_uri_parse_hostinfo(
00157 const axutil_env_t * env,
00158 const axis2_char_t * hostinfo);
00159
00161 AXIS2_EXTERN axutil_uri_t *AXIS2_CALL
00162 axutil_uri_resolve_relative(
00163 const axutil_env_t * env,
00164 const axutil_uri_t * base,
00165 axutil_uri_t * uptr);
00166
00179 AXIS2_EXTERN axutil_uri_t *AXIS2_CALL
00180 axutil_uri_parse_relative(
00181 const axutil_env_t * env,
00182 const axutil_uri_t * base,
00183 const char *uri);
00184
00185 AXIS2_EXTERN void AXIS2_CALL
00186 axutil_uri_free(
00187 axutil_uri_t * uri,
00188 const axutil_env_t * env);
00189
00206 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00207 axutil_uri_to_string(
00208 const axutil_uri_t * uri,
00209 const axutil_env_t * env,
00210 unsigned flags);
00211
00215 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00216 axutil_uri_get_protocol(
00217 axutil_uri_t * uri,
00218 const axutil_env_t * env);
00219
00223 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00224 axutil_uri_get_server(
00225 axutil_uri_t * uri,
00226 const axutil_env_t * env);
00227
00233 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00234 axutil_uri_get_host(
00235 axutil_uri_t * uri,
00236 const axutil_env_t * env);
00237
00238 AXIS2_EXTERN axis2_port_t AXIS2_CALL
00239 axutil_uri_get_port(
00240 axutil_uri_t * uri,
00241 const axutil_env_t * env);
00242
00246 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00247 axutil_uri_get_path(
00248 axutil_uri_t * uri,
00249 const axutil_env_t * env);
00250
00251 AXIS2_EXTERN axutil_uri_t *AXIS2_CALL
00252 axutil_uri_clone(
00253 const axutil_uri_t * uri,
00254 const axutil_env_t * env);
00255
00259 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00260 axutil_uri_get_query(
00261 axutil_uri_t * uri,
00262 const axutil_env_t * env);
00263
00267 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00268 axutil_uri_get_fragment(
00269 axutil_uri_t * uri,
00270 const axutil_env_t * env);
00271
00273 #ifdef __cplusplus
00274 }
00275 #endif
00276
00277 #endif