3 #ifndef INCLUDE_NN_NLIB_URI_H_ 4 #define INCLUDE_NN_NLIB_URI_H_ 15 class MemoryOutputStream;
27 static errno_t DecodeUriComponent(
size_t* written,
char* buf,
size_t n,
const char* first,
30 const char* s) NLIB_NOEXCEPT {
31 return DecodeUriComponent(written, buf, n, s, s +
nlib_strlen(s));
33 static errno_t EncodeUriComponent(
size_t* written,
char* buf,
size_t n,
const char* first,
36 bool fragment_mode) NLIB_NOEXCEPT {
37 return EncodeUriComponent(written, buf, n, s, s +
nlib_strlen(s), fragment_mode);
44 const char* s) NLIB_NOEXCEPT {
45 return DecodeUriComponent(written, buf, N, s);
49 const char* last) NLIB_NOEXCEPT {
50 return DecodeUriComponent(written, buf, N, first, last);
54 bool fragment_mode) NLIB_NOEXCEPT {
55 return EncodeUriComponent(written, buf, N, s, fragment_mode);
59 const char* last,
bool fragment_mode) NLIB_NOEXCEPT {
60 return EncodeUriComponent(written, buf, N, first, last, fragment_mode);
64 return DecodePath(written, buf, N, s);
68 return EncodePath(written, buf, N, s);
72 Uri() NLIB_NOEXCEPT : prv_(NULL) {}
84 bool SetUri(
const char* scheme,
const char* userinfo,
const char* host,
85 const char* port,
const char* path,
const char* query,
87 bool ComposeString(
char* buf,
size_t size)
const NLIB_NOEXCEPT;
90 return this->ComposeString(buf, N);
126 mutable UriPrivate* prv_;
131 #endif // INCLUDE_NN_NLIB_URI_H_ static errno_t DecodeUriComponent(size_t *written, char *buf, size_t n, const char *s) noexcept
Decodes a percent-encoded string.
static errno_t EncodeUriComponent(size_t *written, char *buf, size_t n, const char *s, bool fragment_mode) noexcept
Percent-encodes a string.
static errno_t DecodePath(size_t *written, char(&buf)[N], const char *s) noexcept
Calls DecodePath(written, buf, N, s) .
static errno_t DecodeUriComponent(size_t *written, char(&buf)[N], const char *s) noexcept
Calls DecodeUriComponent(written, buf, N, s).
static errno_t EncodePath(size_t *written, char(&buf)[N], const char *s) noexcept
Calls EncodePath(written, buf, N, s).
Uri() noexcept
Instantiates the object with default parameters (default constructor). Initializes an object...
static errno_t DecodeUriComponent(size_t *written, char(&buf)[N], const char *first, const char *last) noexcept
Calls DecodeUriComponent(written, buf, N, first, last).
Defines the class that resembles std::vector but can store objects that cannot be copied...
static errno_t EncodeUriComponent(size_t *written, char(&buf)[N], const char *first, const char *last, bool fragment_mode) noexcept
Calls EncodeUriComponent(written, buf, N, first, last, fragment_mode).
static errno_t EncodeUriComponent(size_t *written, char(&buf)[N], const char *s, bool fragment_mode) noexcept
Calls EncodeUriComponent(written, buf, N, s, fragment_mode).
bool ComposeString(char(&buf)[N]) const noexcept
Writes a URI string.
#define NLIB_NOEXCEPT
Defines noexcept geared to the environment, or the equivalent.
A file that contains the configuration information for each development environment.
The class for parsing and constructing regular URIs.
#define NLIB_FINAL
Defines final if it is available for use. If not, holds an empty string.