uri.h

00001 /*
00002  * Copyright (c) 2005-2012 by KoanLogic s.r.l. - All rights reserved.
00003  */
00004 
00005 #ifndef _U_URI_H_
00006 #define _U_URI_H_
00007 
00008 #include <u/libu_conf.h>
00009 
00010 #ifdef __cplusplus
00011 extern "C" {
00012 #endif
00013 
00014 struct u_uri_s;     /* fwd decl */
00015 
00023 #define U_URI_STRMAX    4096
00024 
00027 typedef enum
00028 {
00029     U_URI_OPT_NONE = 0x00,
00032     U_URI_OPT_DONT_PARSE_USERINFO = 0x01,
00034 } u_uri_opts_t;
00035 
00037 typedef enum
00038 {
00039     U_URI_FLAGS_NONE = 0x00,
00042     U_URI_FLAGS_HOST_IS_IPADDRESS = 0x01,
00046     U_URI_FLAGS_HOST_IS_IPLITERAL = 0x02,
00050 } u_uri_flags_t;
00051 
00053 typedef struct u_uri_s u_uri_t;
00054 
00055 /* uri ctor/dtor */
00056 int u_uri_new (u_uri_opts_t opts, u_uri_t **pu);
00057 void u_uri_free (u_uri_t *u);
00058 
00059 /* uri encoder/decoder */
00060 int u_uri_crumble (const char *s, u_uri_opts_t opts, u_uri_t **pu);
00061 int u_uri_knead (u_uri_t *u, char s[U_URI_STRMAX]);
00062 
00063 /* print u_uri_t internal state */
00064 void u_uri_print (u_uri_t *u, int extended);
00065 
00066 /* getter/setter methods for u_uri_t objects */
00067 
00069 const char *u_uri_get_scheme (u_uri_t *uri);
00070 
00072 int u_uri_set_scheme (u_uri_t *uri, const char *val);
00073 
00075 const char *u_uri_get_userinfo (u_uri_t *uri);
00076 
00078 int u_uri_set_userinfo (u_uri_t *uri, const char *val);
00079 
00081 const char *u_uri_get_user (u_uri_t *uri);
00082 
00084 int u_uri_set_user (u_uri_t *uri, const char *val);
00085 
00087 const char *u_uri_get_pwd (u_uri_t *uri);
00088 
00090 int u_uri_set_pwd (u_uri_t *uri, const char *val);
00091 
00093 const char *u_uri_get_host (u_uri_t *uri);
00094 
00096 int u_uri_set_host (u_uri_t *uri, const char *val);
00097 
00099 const char *u_uri_get_port (u_uri_t *uri);
00100 
00102 u_uri_flags_t u_uri_get_flags (u_uri_t *uri);
00103 
00105 int u_uri_set_port (u_uri_t *uri, const char *val);
00106 
00108 const char *u_uri_get_authority (u_uri_t *uri);
00109 
00111 int u_uri_set_authority (u_uri_t *uri, const char *val);
00112 
00114 const char *u_uri_get_path (u_uri_t *uri);
00115 
00117 int u_uri_set_path (u_uri_t *uri, const char *val);
00118 
00120 const char *u_uri_get_query (u_uri_t *uri);
00121 
00123 int u_uri_set_query (u_uri_t *uri, const char *val);
00124 
00126 const char *u_uri_get_fragment (u_uri_t *uri);
00127 
00129 int u_uri_set_fragment (u_uri_t *uri, const char *val);
00130 
00135 #ifdef __cplusplus
00136 }
00137 #endif
00138 
00139 #endif /* !_U_URI_H_ */ 

←Products
© 2005-2012 - KoanLogic S.r.l. - All rights reserved