DotNetDupe 4.0.6
C++17/20 Implementation of the .NET Base Class Library (BCL)
Loading...
Searching...
No Matches
UriParser.cpp
Go to the documentation of this file.
1
2#include "pch.h"
3#include "System/UriParser.h"
4#include "System/Uri.h"
5#include <map>
6#include <utility>
7
8namespace DotNetDupe {
9 namespace System {
10 std::map<String, std::pair<UriParser*, int>> UriParser::_parsers;
11
15
16 void UriParser::Register(UriParser* uriParser, const String& schemeName, int defaultPort) {
18 _parsers [schemeName] = std::make_pair(uriParser, defaultPort);
19 }
20
21 bool UriParser::IsKnownScheme(const String& schemeName) {
23 return _parsers.find(schemeName) != _parsers.end();
24 }
25
28 auto it = _parsers.find(schemeName);
29 if (it != _parsers.end()) {
30 return it->second.first;
31 }
32 return nullptr;
33 }
34
35 String UriParser::GetComponents(const Uri& uri, UriComponents components, UriFormat format) {
37 return uri.GetAbsoluteUri();
38 }
39
43 }
44}
Provides an object representation of a Uniform Resource Identifier (URI) and easy access to its parts...
Parses a new URI scheme.
GenericUriParser()
Constructs a new GenericUriParser instance.
Definition UriParser.cpp:40
Represents text as a sequence of UTF-8 code units with culture-invariant operations.
Definition String.h:74
Represents an object representation of a Uniform Resource Identifier (URI) and provides easy access t...
Definition Uri.h:21
String GetAbsoluteUri() const
Gets the absolute URI string representation.
Definition Uri.cpp:103
UriParser()
Constructs a default instance of UriParser.
Definition UriParser.cpp:12
static UriParser * GetParser(const String &schemeName)
Retrieves the registered parser associated with a scheme.
Definition UriParser.cpp:26
static void Register(UriParser *uriParser, const String &schemeName, int defaultPort)
Registers a custom parser and default port for a specific URI scheme.
Definition UriParser.cpp:16
static bool IsKnownScheme(const String &schemeName)
Indicates whether the parser for a scheme is registered.
Definition UriParser.cpp:21
virtual String GetComponents(const Uri &uri, UriComponents components, UriFormat format)
Gets the components from a URI formatted as specified.
Definition UriParser.cpp:35
UriComponents
Specifies the parts of a Uniform Resource Identifier (URI) to return.
Definition UriEnums.h:16
UriFormat
Controls character escaping and normalization during URI component extraction.
Definition UriEnums.h:41