DotNetDupe 4.0.6
C++17/20 Implementation of the .NET Base Class Library (BCL)
Loading...
Searching...
No Matches
UriParser.h
Go to the documentation of this file.
1
5
6#pragma once
7#include "Common.h"
8#include "System/Object.h"
9#include "System/String.h"
10#include "System/UriEnums.h"
11#include <map>
12
13namespace DotNetDupe {
14 namespace System {
15
16 class Uri;
17
23 class UriParser : public Object {
24 public:
29 DOTNETDUPE_API static void Register(UriParser* uriParser, const String& schemeName, int defaultPort);
30
34 DOTNETDUPE_API static bool IsKnownScheme(const String& schemeName);
35
39 DOTNETDUPE_API static UriParser* GetParser(const String& schemeName);
40
43
49 DOTNETDUPE_API virtual String GetComponents(const Uri& uri, UriComponents components, UriFormat format);
50
51 private:
52 static std::map<String, std::pair<UriParser*, int>> _parsers;
53 };
54
57 class GenericUriParser : public UriParser {
58 public:
61 };
62
63 }
64}
Defines common cross-platform macros, export decorators, and fundamental types.
#define DOTNETDUPE_API
Platform-specific linkage decoration for exporting or importing library symbols.
Definition Common.h:20
Base object class for DotNetDupe mirroring .NET System.Object.
High-performance UTF-8 / UTF-16 string manipulation class mirroring .NET System.String.
Defines enumerations specifying components and formatting for Uniform Resource Identifiers (URIs).
GenericUriParser()
Constructs a new GenericUriParser instance.
Definition UriParser.cpp:40
Supports all classes in the DotNetDupe class hierarchy.
Definition Object.h:18
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
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