Public Member Functions | List of all members
Http Class Reference

An HTTP URL. More...

#include <Http.hpp>

Inheritance diagram for Http:
[legend]
Collaboration diagram for Http:
[legend]

Public Member Functions

 Http ()=default
 Create a null HTTP URI. More...
 
 Http (std::string &&uri_)
 Create an HTTP URI from the supplied URI string. More...
 
 Http (std::string_view uri_)
 Create an HTTP URI from the supplied URI string. More...
 
 Http (const char *uri_)
 Create an HTTP URI from the supplied URI string. More...
 
 Http (const Http &copy)=default
 Create an HTTP URI by copying the supplied instance. More...
 
 Http (Http &&rhs) noexcept
 Create an HTTP URI by moving the contents of the supplied instance. More...
 
std::unique_ptr< Uriappend (const std::string &pathComponent) const override
 Appends the path component to the supplied URI, returning a new URI. More...
 
std::unique_ptr< ByteReadResourcebyteReadResource () const override
 Get a byte read resource for the URI. More...
 
std::unique_ptr< ByteWriteResourcebyteWriteResource () 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< Uriclone () const override
 Clone the concrete Uri. More...
 
void dispatch (UriDispatcher &dispatcher) const override
 Visitor pattern dispatching. More...
 
HttpByteReadResource getByteReadResource () const
 Get a byte read resource for the HTTP source. More...
 
HttpUtf8To32ReadResource getUtf8To32ReadResource () const
 Get a UTF-8 to UTF-32 read resource for the HTTP source. 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...
 
std::unique_ptr< UriIteratoriterator () 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< RecursiveUriIteratorrecursiveIterator () const override
 Get a recursive iterator. More...
 
std::unique_ptr< Uriresolve (std::string_view path) const override
 Resolve the relative or absolute path, in reference to the current URI. More...
 
template<typename AllocatorT >
Balau::U8String< AllocatorT > toRawString () const
 Get a string representing the raw URI. More...
 
std::unique_ptr< Utf32To8WriteResourceutf32To8WriteResource () override
 Get a UTF-32 to UTF-8 write resource for the URI. More...
 
std::unique_ptr< Utf8To32ReadResourceutf8To32ReadResource () const override
 Get a UTF-8 to UTF-32 read resource for the URI. More...
 
- Public Member Functions inherited from Url
size_t hashcode () const noexcept override
 Get the URI's hash code. 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::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...
 
- Public Member Functions inherited from Uri
virtual ~Uri ()=default
 Destroy the URI instance. More...
 
std::shared_ptr< UricloneToShared () const
 Clone the concrete Uri to a shared pointer. More...
 

Detailed Description

An HTTP URL.

Constructor & Destructor Documentation

◆ Http() [1/6]

Http ( )
default

Create a null HTTP URI.

◆ Http() [2/6]

Http ( std::string &&  uri_)
inlineexplicit

Create an HTTP URI from the supplied URI string.

◆ Http() [3/6]

Http ( std::string_view  uri_)
inlineexplicit

Create an HTTP URI from the supplied URI string.

◆ Http() [4/6]

Http ( const char *  uri_)
inlineexplicit

Create an HTTP URI from the supplied URI string.

◆ Http() [5/6]

Http ( const Http copy)
default

Create an HTTP URI by copying the supplied instance.

◆ Http() [6/6]

Http ( Http &&  rhs)
inlinenoexcept

Create an HTTP URI by moving the contents of the supplied instance.

Member Function Documentation

◆ append()

std::unique_ptr<Uri> append ( const std::string &  pathComponent) const
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.

◆ byteReadResource()

std::unique_ptr<ByteReadResource> byteReadResource ( ) const
inlineoverridevirtual

Get a byte read resource for the URI.

Exceptions
NotImplementedExceptionif the URI does not support reading
ResourceExceptionif the resource could not be created

Implements Uri.

◆ byteWriteResource()

std::unique_ptr<ByteWriteResource> byteWriteResource ( )
inlineoverridevirtual

Get a byte write resource for the URI.

Exceptions
NotImplementedExceptionif the URI does not support writing
ResourceExceptionif the resource could not be created

Implements Uri.

◆ canReadFrom()

bool canReadFrom ( ) const
inlineoverridevirtual

Can data be read from the URI via a read resource.

Implements Uri.

◆ canWriteTo()

bool canWriteTo ( ) const
inlineoverridevirtual

Can data be written to the URI via a write resource.

Implements Uri.

◆ clone()

std::unique_ptr<Uri> clone ( ) const
inlineoverridevirtual

Clone the concrete Uri.

Returns
a clone of the URI

Implements Uri.

◆ dispatch()

void dispatch ( UriDispatcher visitor) const
inlineoverridevirtual

Visitor pattern dispatching.

Parameters
visitorthe visitor to visit

Implements Uri.

◆ getByteReadResource()

HttpByteReadResource getByteReadResource ( ) const
inline

Get a byte read resource for the HTTP source.

◆ getUtf8To32ReadResource()

HttpUtf8To32ReadResource getUtf8To32ReadResource ( ) const
inline

Get a UTF-8 to UTF-32 read resource for the HTTP source.

◆ isIterable()

bool isIterable ( ) const
inlineoverridevirtual

Does the URI have a non-recursive iterator (examples: file and zip archive URIs).

Implements Uri.

◆ isRecursivelyIterable()

bool isRecursivelyIterable ( ) const
inlineoverridevirtual

Does the URI have a recursive iterator (examples: file and zip archive URIs).

Implements Uri.

◆ iterator()

std::unique_ptr<UriIterator> iterator ( ) const
inlineoverridevirtual

Get a (non-recursive) iterator.

This will throw a NotImplementedException if the URI does not have an iterator.

Implements Uri.

◆ operator==()

bool operator== ( const Uri rhs) const
inlineoverridevirtual

Compare the supplied URI to the current URI.

Returns
true if the supplied URI is equal to the current URI.

Implements Uri.

◆ recursiveIterator()

std::unique_ptr<RecursiveUriIterator> recursiveIterator ( ) const
inlineoverridevirtual

Get a recursive iterator.

This will throw a NotImplementedException if the URI does not have a recursive iterator.

Implements Uri.

◆ resolve()

std::unique_ptr<Uri> resolve ( std::string_view  path) const
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.

  • If the URI path ends with a forward slash (or is a directory for file URIs), the base path is the URI path.
  • Otherwise, the rightmost path element is stripped from the URI path to form the base path.
Parameters
patha relative or absolute path, or a full URI
Returns
a new URI

Implements Uri.

◆ toRawString()

Balau::U8String<AllocatorT> toRawString ( ) const
inlinevirtual

Get a string representing the raw URI.

This may or may not be the same as the string returned by toUriString().

Returns
a string representing the raw URI

Implements Uri.

◆ utf32To8WriteResource()

std::unique_ptr<Utf32To8WriteResource> utf32To8WriteResource ( )
inlineoverridevirtual

Get a UTF-32 to UTF-8 write resource for the URI.

Exceptions
NotImplementedExceptionif the URI does not support writing
ResourceExceptionif the resource could not be created

Implements Uri.

◆ utf8To32ReadResource()

std::unique_ptr<Utf8To32ReadResource> utf8To32ReadResource ( ) const
inlineoverridevirtual

Get a UTF-8 to UTF-32 read resource for the URI.

Exceptions
NotImplementedExceptionif the URI does not support reading
ResourceExceptionif the resource could not be created

Implements Uri.


The documentation for this class was generated from the following file: