An immediate string pseudo-URI. More...
#include <StringUri.hpp>
Public Member Functions | |
StringUri ()=default | |
Create an empty String URI. More... | |
StringUri (std::string data_) | |
Create a String URI with the supplied string data. More... | |
StringUri (const StringUri ©)=default | |
Create an HTTP URI by copying the supplied instance. More... | |
StringUri (StringUri &&rhs) noexcept=default | |
Create an HTTP URI by moving the contents of the supplied instance. More... | |
StringUri & | append (std::string_view text) |
Append the supplied text to the internal string data. More... | |
StringUri & | append (char c) |
Append the supplied ascii character to the internal string data. More... | |
StringUri & | append (char32_t c) |
Append the supplied code point to the internal string data. More... | |
std::unique_ptr< Uri > | append (const std::string &pathComponent) const override |
Appends the path component to the supplied URI, returning a new URI. More... | |
std::unique_ptr< ByteReadResource > | byteReadResource () const override |
Get a byte read resource for the URI. More... | |
std::unique_ptr< ByteWriteResource > | byteWriteResource () override |
Get a byte write resource for the URI. More... | |
bool | canReadFrom () const override |
Can data be read from the URI via a read resource. More... | |
bool | canWriteTo () const override |
Can data be written to the URI via a write resource. More... | |
std::unique_ptr< Uri > | clone () const override |
Clone the concrete Uri. More... | |
void | dispatch (UriDispatcher &dispatcher) const override |
Visitor pattern dispatching. More... | |
StringUriByteReadResource | getByteReadResource () const |
Get a byte read resource for the HTTP source. More... | |
const std::string & | getString () const |
Get a const reference to the string data of the String URI. More... | |
StringUriUtf8To32ReadResource | getUtf8To32ReadResource () const |
Get a UTF-8 to UTF-32 read resource for the HTTP source. More... | |
size_t | hashcode () const noexcept override |
Get the URI's hash code. More... | |
bool | isIterable () const override |
Does the URI have a non-recursive iterator (examples: file and zip archive URIs). More... | |
bool | isRecursivelyIterable () const override |
Does the URI have a recursive iterator (examples: file and zip archive URIs). More... | |
bool | isRegularDirectory () const override |
Returns true if the URI points to a file directory. More... | |
bool | isRegularFile () const override |
Returns true if the URI is a regular file. More... | |
std::unique_ptr< UriIterator > | iterator () const override |
Get a (non-recursive) iterator. More... | |
bool | operator== (const Uri &rhs) const override |
Compare the supplied URI to the current URI. More... | |
std::unique_ptr< RecursiveUriIterator > | recursiveIterator () const override |
Get a recursive iterator. More... | |
std::unique_ptr< Uri > | resolve (std::string_view path) const override |
Resolve the relative or absolute path, in reference to the current URI. More... | |
std::string | toRawString () const override |
Get a string representing the raw URI. More... | |
std::string | toUriString () const override |
Get a string representing the URI, complete with scheme. More... | |
std::unique_ptr< Utf32To8WriteResource > | utf32To8WriteResource () override |
Get a UTF-32 to UTF-8 write resource for the URI. More... | |
std::unique_ptr< Utf8To32ReadResource > | utf8To32ReadResource () const override |
Get a UTF-8 to UTF-32 read resource for the URI. More... | |
Public Member Functions inherited from Uri | |
virtual | ~Uri ()=default |
Destroy the URI instance. More... | |
std::shared_ptr< Uri > | cloneToShared () const |
Clone the concrete Uri to a shared pointer. More... | |
An immediate string pseudo-URI.
Unlike other resource URIs, the String URI is a pseudo-URI that specifies a immediate data available from the read resource streams. As such, String URIs do not designate a remote resource that will be read. Instead, string data internal to the String URI will be implicitly read.
String URIs are a convenience mechanism that allows the abstraction of a byte, UTF-8, or UTF-32 data source to be specified via a pointer to the abstract URI class. They are thus not compliant with the Universal Resource Identifier specification.
The URI of a String URI is always "string:". Note that String URI equality is based on the internal data and not the URI contents (which is identical for all String UIRs).
|
default |
Create an empty String URI.
The internal string can be appended by calling the append() method.
|
inlineexplicit |
Create a String URI with the supplied string data.
Create an HTTP URI by moving the contents of the supplied instance.
|
inline |
Append the supplied text to the internal string data.
text | a view onto the text to append |
|
inline |
Append the supplied ascii character to the internal string data.
c | the character to append |
|
inline |
Append the supplied code point to the internal string data.
c | the code point to append |
|
inlineoverridevirtual |
Appends the path component to the supplied URI, returning a new URI.
If the URI type does not permit appending of path components, UnsupportedOperationException is thrown.
Implements Uri.
|
inlineoverridevirtual |
Get a byte read resource for the URI.
NotImplementedException | if the URI does not support reading |
ResourceException | if the resource could not be created |
Implements Uri.
|
inlineoverridevirtual |
Get a byte write resource for the URI.
NotImplementedException | if the URI does not support writing |
ResourceException | if the resource could not be created |
Implements Uri.
|
inlineoverridevirtual |
Can data be read from the URI via a read resource.
Implements Uri.
|
inlineoverridevirtual |
Can data be written to the URI via a write resource.
Implements Uri.
|
inlineoverridevirtual |
|
inlineoverridevirtual |
|
inline |
Get a byte read resource for the HTTP source.
|
inline |
Get a const reference to the string data of the String URI.
|
inline |
Get a UTF-8 to UTF-32 read resource for the HTTP source.
|
inlineoverridevirtualnoexcept |
|
inlineoverridevirtual |
Does the URI have a non-recursive iterator (examples: file and zip archive URIs).
Implements Uri.
|
inlineoverridevirtual |
Does the URI have a recursive iterator (examples: file and zip archive URIs).
Implements Uri.
|
inlineoverridevirtual |
Returns true if the URI points to a file directory.
Implements Uri.
|
inlineoverridevirtual |
|
inlineoverridevirtual |
Get a (non-recursive) iterator.
This will throw a NotImplementedException if the URI does not have an iterator.
Implements Uri.
|
inlineoverridevirtual |
Compare the supplied URI to the current URI.
Implements Uri.
|
inlineoverridevirtual |
Get a recursive iterator.
This will throw a NotImplementedException if the URI does not have a recursive iterator.
Implements Uri.
|
inlineoverridevirtual |
Resolve the relative or absolute path, in reference to the current URI.
If the supplied path contains a scheme prefix, the URI fromString function will be called to create a new unrelated URI instance.
This method will determine the base path to use by applying the following rules.
path | a relative or absolute path, or a full URI |
Implements Uri.
|
inlineoverridevirtual |
Get a string representing the raw URI.
This may or may not be the same as the string returned by toUriString().
Implements Uri.
|
inlineoverridevirtual |
Get a string representing the URI, complete with scheme.
Implements Uri.
|
inlineoverridevirtual |
Get a UTF-32 to UTF-8 write resource for the URI.
NotImplementedException | if the URI does not support writing |
ResourceException | if the resource could not be created |
Implements Uri.
|
inlineoverridevirtual |
Get a UTF-8 to UTF-32 read resource for the URI.
NotImplementedException | if the URI does not support reading |
ResourceException | if the resource could not be created |
Implements Uri.