CeresEngine 0.2.0
A game development framework
Loading...
Searching...
No Matches
CeresEngine::URLRequest Class Reference

A URL load request that is independent of protocol or URL scheme. More...

#include <CeresEngine/Foundation/IO/URLSession.hpp>

Inheritance diagram for CeresEngine::URLRequest:
CeresEngine::Poly< IURLRequest, sizeof(IURLRequest)>

Public Types

using CachePolicy = IURLRequest::CachePolicy
 
using Mode = IURLRequest::Mode
 

Public Member Functions

 URLRequest (URL url)
 Creates a new URLRequest from a URL.
 
 URLRequest (const StringView url)
 Creates a new URLRequest from a URL.
 
 URLRequest (const URLRequest &request, const URL &url)
 Creates a new URLRequest instance that is triggered from another.
 
 Poly (const Poly &other)
 Creates a new Poly by copying an existing one.
 
 Poly (Poly &&other) noexcept
 Creates a new Poly by moving an existing one.
 
 Poly (std::nullptr_t) noexcept
 Creates a new empty Poly.
 
template<typename TT = T>
requires (std::is_default_constructible_v<TT>)
 Poly () noexcept
 Creates a new empty Poly.
 
template<typename TT , typename... Args>
requires (std::is_convertible_v<TT*, T*>&& std::is_constructible_v<TT, Args&&...>)
 Poly (std::in_place_type_t< TT >, Args &&... args)
 Creates a new Poly that holds a newly constructed object of type TT.
 
template<typename... Args>
requires (std::is_constructible_v<T, Args...>)
 Poly (Args &&... args)
 Creates a new Poly that holds a newly constructed object of type T.
 
template<typename TT >
requires (std::is_convertible_v<TT*, T*> && Copyable)
 Poly (TT object)
 Creates a new Poly that holds a copy constructed object of type TT.
 
template<typename TT >
requires (std::is_convertible_v<TT*, T*> && !Copyable)
 Poly (TT &&object)
 Creates a new Poly that holds a copy constructed object of type TT.
 
 Poly (T *const instance)
 Creates a new Poly instance by referencing another.
 
template<typename U >
requires (Copyable)
 Poly (const Poly< U, SmallSize, Copyable, BaseType > &other)
 Creates a new Poly instance by referencing another.
 
template<typename U >
 Poly (Poly< U, SmallSize, Copyable, BaseType > &&other)
 Creates a new Poly instance by referencing another.
 
- Public Member Functions inherited from CeresEngine::Poly< IURLRequest, sizeof(IURLRequest)>
 Poly (const Poly &other)
 Creates a new Poly by copying an existing one.
 
 Poly (Poly &&other) noexcept
 Creates a new Poly by moving an existing one.
 
 Poly (std::nullptr_t) noexcept
 Creates a new empty Poly.
 
 Poly () noexcept
 Creates a new empty Poly.
 
 Poly (std::in_place_type_t< TT >, Args &&... args)
 Creates a new Poly that holds a newly constructed object of type TT.
 
 Poly (Args &&... args)
 Creates a new Poly that holds a newly constructed object of type T.
 
 Poly (TT object)
 Creates a new Poly that holds a copy constructed object of type TT.
 
 Poly (TT &&object)
 Creates a new Poly that holds a copy constructed object of type TT.
 
 Poly (IURLRequest *const instance)
 Creates a new Poly instance by referencing another.
 
 Poly (const Poly< U, SmallSize, true, IURLRequest > &other)
 Creates a new Poly instance by referencing another.
 
 Poly (Poly< U, SmallSize, true, IURLRequest > &&other)
 Creates a new Poly instance by referencing another.
 
bool isCopyable () const noexcept
 Checks if the Poly copy constructor can be safely called.
 
Polyoperator= (const Poly &other)
 Assigns a Poly by copying an existing one.
 
Polyoperator= (Poly &&other)
 Assigns a Poly by moving an existing one.
 
Polyoperator= (std::nullptr_t) noexcept
 Assigns the Poly a nullptr value.
 
bool isMovable () const noexcept
 Checks if the Poly move constructor can be safely called.
 
 ~Poly () noexcept
 Destroys the Poly and destroys the object is present.
 
TT & emplace (Args &&... args)
 Emplace a new object of type TT into the Poly.
 
TT & emplace (TT &&instance)
 
bool valid () const
 Checks if the pointer has a valid object stored in it.
 
bool empty () const
 Checks if the pointer has a valid object stored in it.
 
 operator bool () const
 Checks if the pointer has a valid object stored in it.
 
IURLRequestget ()
 
const IURLRequestget () const
 
IURLRequestoperator-> ()
 
const IURLRequestoperator-> () const
 
const IURLRequestoperator* () const &
 
IURLRequestoperator* () &
 &
 
IURLRequest && operator* () &&
 &
 
const std::type_info & getTypeID () const
 
bool is () const
 Checks if the hold object is of type TT.
 
TT * being ()
 Safely casts the hold type to TT.
 
const TT * being () const
 Safely casts the hold type to TT.
 
TT & as () &
 Casts the hold type to TT.
 
TT && as () &&
 Casts the hold type to TT.
 
const TT & as () const &
 Casts the hold type to TT.
 

Additional Inherited Members

- Static Public Attributes inherited from CeresEngine::Poly< IURLRequest, sizeof(IURLRequest)>
static constexpr bool isSmall
 true if an object of type U will not cause an allocation.
 

Detailed Description

A URL load request that is independent of protocol or URL scheme.

URLRequest encapsulates two essential properties of a load request: the URL to load and the policies used to load it. In addition, for HTTP and HTTPS requests, URLRequest includes the HTTP method (GET, POST, and so on) and the HTTP headers.

URLRequest only represents information about the request. Use other classes, such as URLSession, to send the request to a server.

Member Typedef Documentation

◆ CachePolicy

◆ Mode

Constructor & Destructor Documentation

◆ URLRequest() [1/3]

CeresEngine::URLRequest::URLRequest ( URL  url)
inline

Creates a new URLRequest from a URL.

Parameters
urlThe URL to create a new request from.

◆ URLRequest() [2/3]

CeresEngine::URLRequest::URLRequest ( const StringView  url)
inline

Creates a new URLRequest from a URL.

Parameters
urlThe URL to create a new request from.

◆ URLRequest() [3/3]

CeresEngine::URLRequest::URLRequest ( const URLRequest request,
const URL url 
)
inlineexplicit

Creates a new URLRequest instance that is triggered from another.

Parameters
requestThe request that triggered the creation of this new request.
urlThe URL of the request.

Member Function Documentation

◆ Poly() [1/11]

template<typename TT = T>
requires (std::is_default_constructible_v<TT>)
CeresEngine::Poly< T, SmallSize, Copyable, BaseType >::Poly ( )
inlinenoexcept

Creates a new empty Poly.

◆ Poly() [2/11]

template<typename... Args>
requires (std::is_constructible_v<T, Args...>)
CeresEngine::Poly< T, SmallSize, Copyable, BaseType >::Poly ( Args &&...  args)
inlineexplicit

Creates a new Poly that holds a newly constructed object of type T.

Template Parameters
Argsthe object constructor argument types
Parameters
argsThe object constructor arguments

◆ Poly() [3/11]

CeresEngine::Poly< T, SmallSize, Copyable, BaseType >::Poly ( const Poly other)
inline

Creates a new Poly by copying an existing one.

Parameters
otherThe instance to copy from

◆ Poly() [4/11]

template<typename U >
requires (Copyable)
CeresEngine::Poly< T, SmallSize, Copyable, BaseType >::Poly ( const Poly< U, SmallSize, Copyable, BaseType > &  other)
inline

Creates a new Poly instance by referencing another.

This will not copy the object and will always reference to the original instance.

Parameters
instanceThe instance to create a new Poly reference from.

◆ Poly() [5/11]

CeresEngine::Poly< T, SmallSize, Copyable, BaseType >::Poly ( Poly &&  other)
inlinenoexcept

Creates a new Poly by moving an existing one.

Parameters
otherThe instance to move from

◆ Poly() [6/11]

template<typename U >
CeresEngine::Poly< T, SmallSize, Copyable, BaseType >::Poly ( Poly< U, SmallSize, Copyable, BaseType > &&  other)
inline

Creates a new Poly instance by referencing another.

This will not copy the object and will always reference to the original instance.

Parameters
instanceThe instance to create a new Poly reference from.

◆ Poly() [7/11]

template<typename TT , typename... Args>
requires (std::is_convertible_v<TT*, T*>&& std::is_constructible_v<TT, Args&&...>)
CeresEngine::Poly< T, SmallSize, Copyable, BaseType >::Poly ( std::in_place_type_t< TT ,
Args &&...  args 
)
inlineexplicit

Creates a new Poly that holds a newly constructed object of type TT.

Template Parameters
TTthe object type
Argsthe object constructor argument types
Parameters
argsThe object constructor arguments

◆ Poly() [8/11]

CeresEngine::Poly< T, SmallSize, Copyable, BaseType >::Poly ( std::nullptr_t  )
inlinenoexcept

Creates a new empty Poly.

◆ Poly() [9/11]

CeresEngine::Poly< T, SmallSize, Copyable, BaseType >::Poly ( T *const  instance)
inline

Creates a new Poly instance by referencing another.

This will not copy the object and will always reference to the original instance.

Parameters
instanceThe instance to create a new Poly reference from.

◆ Poly() [10/11]

template<typename TT >
requires (std::is_convertible_v<TT*, T*> && !Copyable)
CeresEngine::Poly< T, SmallSize, Copyable, BaseType >::Poly ( TT &&  object)
inline

Creates a new Poly that holds a copy constructed object of type TT.

Template Parameters
TTthe object type

◆ Poly() [11/11]

template<typename TT >
requires (std::is_convertible_v<TT*, T*> && Copyable)
CeresEngine::Poly< T, SmallSize, Copyable, BaseType >::Poly ( TT  object)
inline

Creates a new Poly that holds a copy constructed object of type TT.

Template Parameters
TTthe object type

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