24 #ifndef LIMAL_URLBASE_HPP
25 #define LIMAL_URLBASE_HPP
29 #include <blocxx/COWReference.hpp>
33 namespace LIMAL_NAMESPACE
65 WITH_SCHEME = 1L << 0,
72 WITH_USERNAME = 1L << 1,
81 WITH_PASSWORD = 1L << 2,
101 WITH_PATH_NAME = 1L << 5,
109 WITH_PATH_PARAMS = 1L << 6,
115 WITH_QUERY_STR = 1L << 7,
121 WITH_FRAGMENT = 1L << 8,
135 EMPTY_AUTHORITY = 1L << 10,
147 EMPTY_PATH_NAME = 1L << 11,
157 EMPTY_PATH_PARAMS = 1L << 12,
168 EMPTY_QUERY_STR = 1L << 13,
179 EMPTY_FRAGMENT = 1L << 14,
211 return ViewOptions(static_cast<int>(lo) | static_cast<int>(ro));
252 opt |=
static_cast<int>(o);
265 opt &= ~ static_cast<
int>(o);
278 return opt &
static_cast<int>(o);
362 UrlBase(
const blocxx::String &urlString);
376 operator = (
const UrlBase &url);
395 operator = (
const blocxx::String &urlString);
450 virtual blocxx::StringArray
451 getKnownSchemes()
const;
458 isKnownScheme(
const blocxx::String &scheme)
const;
474 isValidScheme(
const blocxx::String &scheme)
const;
497 virtual blocxx::String
512 virtual blocxx::String
521 virtual blocxx::String
535 virtual blocxx::String
536 getAuthority()
const;
545 virtual blocxx::String
555 virtual blocxx::String
570 virtual blocxx::String
577 virtual blocxx::String
591 virtual blocxx::String
602 virtual blocxx::String
609 virtual blocxx::String
610 getPathParams()
const;
624 virtual blocxx::StringArray
625 getPathParamsArray()
const;
665 virtual blocxx::String
666 getPathParam(
const blocxx::String ¶m,
EEncoding eflag)
const;
679 virtual blocxx::String
680 getQueryString()
const;
695 virtual blocxx::StringArray
696 getQueryStringArray()
const;
717 getQueryStringMap(
EEncoding eflag)
const;
735 virtual blocxx::String
736 getQueryParam(
const blocxx::String ¶m,
EEncoding eflag)
const;
747 virtual blocxx::String
759 setScheme(
const blocxx::String &scheme);
777 setAuthority(
const blocxx::String &authority);
789 setUsername(
const blocxx::String &user,
802 setPassword(
const blocxx::String &pass,
826 setHost(
const blocxx::String &host,
837 setPort(
const blocxx::String &port);
852 setPathData(
const blocxx::String &pathdata);
862 setPathName(
const blocxx::String &path,
872 setPathParams(
const blocxx::String ¶ms);
881 setPathParamsArray(
const blocxx::StringArray &parray);
902 setPathParam(
const blocxx::String ¶m,
const blocxx::String &value);
919 setQueryString(
const blocxx::String &querystr);
928 setQueryStringArray(
const blocxx::StringArray &qarray);
949 setQueryParam(
const blocxx::String ¶m,
const blocxx::String &value);
961 setFragment(
const blocxx::String &fragment,
1036 config(
const blocxx::String &opt)
const;
1048 config(
const blocxx::String &opt,
const blocxx::String &val);
1060 getViewOptions()
const;
1101 virtual blocxx::String
1102 cleanupPathName(
const blocxx::String &path,
bool authority)
const;
1114 virtual blocxx::String
1115 cleanupPathName(
const blocxx::String &path)
const;
1118 checkValidScheme(
const blocxx::String &scheme,
EEncoding eflag)
const;
1121 checkValidUser(
const blocxx::String &user,
EEncoding eflag)
const;
1124 checkValidPass(
const blocxx::String &pass,
EEncoding eflag)
const;
1150 checkValidHost(
const blocxx::String &host,
EEncoding eflag)
const;
1159 checkValidPort(
const blocxx::String &port,
EEncoding eflag)
const;
1162 checkValidPathName(
const blocxx::String &path,
EEncoding eflag)
const;
1165 checkValidPathParams(
const blocxx::String ¶ms,
EEncoding eflag)
const;
1168 checkValidQueryStr(
const blocxx::String &querystr,
EEncoding eflag)
const;
1171 checkValidFragment(
const blocxx::String &fragment,
EEncoding eflag)
const;
1182 typedef blocxx::COWReference<UrlBase>
UrlRef;
1188 #endif // LIMAL_URLBASE_HPP