44 #include "Network/ipaddress.h"
105 void ParseScheme(StringIterator CurrIt,
const StringIterator EndIt);
111 void ParseUserInfo(StringIterator CurrIt,
const StringIterator EndIt);
117 void ParseHost(StringIterator CurrIt,
const StringIterator EndIt);
123 void ParsePort(StringIterator CurrIt,
const StringIterator EndIt);
129 void ParsePath(StringIterator CurrIt,
const StringIterator EndIt);
135 void ParseQuery(StringIterator CurrIt,
const StringIterator EndIt);
141 void ParseFragment(StringIterator CurrIt,
const StringIterator EndIt);
147 void ParseAuthority(StringIterator& CurrIt,
const StringIterator EndIt);
153 void ParseAuthorityNoSlash(StringIterator& CurrIt,
const StringIterator EndIt);
159 void ParsePathQueryFrag(StringIterator& CurrIt,
const StringIterator EndIt);
197 static String PercentEncodeSingle(
const Char8 ToEncode);
202 static DecodeResult PercentDecodeSingle(
const String& ToDecode);
206 static void PercentEncodeSingle(
const Char8 ToEncode,
String& Destination);
210 static void PercentDecodeSingle(
const String& ToDecode,
String& Destination);
221 static String PercentDecode(
const String& ToDecode,
const Boole PlusToSpace =
false);
226 static void PercentEncode(
const String& ToEncode,
String& Destination,
const String& AdditionalDelims);
231 static void PercentDecode(
const String& ToDecode,
String& Destination,
const Boole PlusToSpace =
false);
246 static void RemoveDotSegments(
String& ToRemove,
const Boole Relative);
250 Boole IsAbsolute()
const;
253 Boole IsRelative()
const;
256 Boole IsOpaque()
const;
259 Boole IsHierarchical()
const;
312 URI& RemoveDotSegments(
const Boole Relative);
322 Boole IsEmpty()
const;
327 URI Resolve(
const URI& Relative)
const;
333 URI& ParseFromString(
const String& ToParse);
336 String ConvertToString()
const;
352 Boole HasQueryParameter(
const String& Param)
const;
363 const String& GetScheme()
const;
366 Boole HasScheme()
const;
372 URI& SetUserInfo(
const String& UserInfo);
375 const String& GetUserInfo()
const;
378 Boole HasUserInfo()
const;
390 const String& GetHost()
const;
393 Boole HasHost()
const;
404 Boole HasPort()
const;
412 const String& GetPath()
const;
415 Boole HasPath()
const;
423 const String& GetQuery()
const;
426 Boole HasQuery()
const;
431 URI& SetFragment(
const String& Fragment);
434 const String& GetFragment()
const;
437 Boole HasFragment()
const;
444 URI& SetAuthority(
const String& Authority);
447 String GetAuthority()
const;
450 Boole HasAuthority()
const;
457 void operator=(
const URI& Other);
462 Boole operator==(
const URI& Other)
const;
466 Boole operator!=(
const URI& Other)
const;
bool Boole
Generally acts a single bit, true or false.
String URIHost
The domain or address of the Host where the resource is located.
String URIQuery
The optional Query to provide additional non-hierarchical information about the resource.
String::const_iterator StringIterator
Convenience typedef for String iterators.
static const String SubDelims
A String containing the sub-delimiters that some URI schemes may use to delimit scheme specific data...
UInt16 URIPort
The port number on the host to connect to in order to access the resource.
std::pair< Boole, Char8 > DecodeResult
Convenience typedef for storing if a decode was successful and it's result.
char Char8
A datatype to represent one character.
uint16_t UInt16
An 16-bit unsigned integer.
This is a simple class for representing IP addresses used throughout the Network subsystem.
String URIPath
The path to the resource on the Host machine holding the resource.
String URIScheme
The Scheme of the URI, usually noting the type of data the resource is.
A helper class for the reading and using of Uniform Resource Identifiers.
String URIFragment
The optional Fragment providing additional direction to a subset of the resource. ...
The bulk of the engine components go in this namspace.
static const String GenDelims
A String containing the generic delimiters for URIs.
String URIUserInfo
The optional user authentication information to be used when accessing the resource.
std::string String
A datatype used to a series of characters.