10Duke Scale C++ Client
Loading...
Searching...
No Matches
URLBuilder Class Reference

#include <URLBuilder.h>

Detailed Description

Very simple URL-builder.

IMPORTANT Unless specifically documented, URLBuilder does not decode / encode any parts of the URL (see documentation of tenduke::net::URL, which stores the components unencoded).

Public Member Functions

 URLBuilder (const ::tenduke::net::URLCodec &urls)
 Constructs a new instance.
 
 URLBuilder (const ::tenduke::net::URLCodec &urls, const ::tenduke::net::URL *url)
 Constructs a new instance, initializing fields from given URL.
 
::tenduke::net::URL build ()
 Builds the URL.
 
std::unique_ptr<::tenduke::net::URLbuildPtr ()
 Builds the URL into a pointer.
 
std::string buildString ()
 Builds the URL directly into a string.
 
URLBuilderscheme (const char *scheme, std::size_t length)
 
URLBuilderscheme (const std::string &scheme)
 
URLBuilderusername (const char *username, std::size_t length)
 
URLBuilderusername (const std::string &scheme)
 
URLBuilderpassword (const char *password, std::size_t length)
 
URLBuilderpassword (const std::string &password)
 
URLBuilderhostname (const char *hostname, std::size_t length)
 
URLBuilderhostname (const std::string &hostname)
 
URLBuilderport (std::uint16_t port)
 
URLBuilderpath (const std::string &path)
 Sets the entire path: Overwrites any existing path.
 
URLBuilderpath (const char *path, std::size_t length)
 Sets the entire path: Overwrites any existing path.
 
URLBuilderfragment (const char *fragment, std::size_t length)
 
URLBuilderfragment (const std::string &fragment)
 
URLBuilderappendPath (const std::string &pathComponent)
 Appends a path component.
 
URLBuilderbaseURL (const ::tenduke::net::URL &url)
 Sets the base URL.
 
URLBuilderqueryParameter (const char *name)
 Adds query parameter without a value.
 
URLBuilderqueryParameter (const std::string &name)
 Adds query parameter without a value.
 
URLBuilderqueryParameter (const char *name, const char *value)
 Adds query parameter.
 
URLBuilderqueryParameter (const std::string &name, const std::string &value)
 Adds query parameter.
 
URLBuilderqueryParameter (const char *name, std::size_t length)
 Adds query parameter.
 
URLBuilderqueryParameter (const char *name, std::size_t nameLength, const char *value, std::size_t valueLength)
 Adds query parameter.
 
URLBuilderqueryParameters (const std::map< std::string, std::string > &pParameters)
 Sets multiple query parameters.
 
URLBuilderencodedQueryParameter (const char *name, const char *value)
 Adds an encoded query parameter.
 
URLBuilderencodedQueryParameter (const std::string &name, const std::string &value="")
 Adds an encoded query parameter.
 
URLBuilderencodedQueryParameter (const char *name, std::size_t nameLength)
 Adds an encoded query parameter.
 
URLBuilderencodedQueryParameter (const char *name, std::size_t nameLength, const char *value, std::size_t valueLength)
 Adds an encoded query parameter.
 
std::string pctEncode (const std::string &value) const
 Utility to PCT-encode a string.
 

Constructor & Destructor Documentation

◆ URLBuilder() [1/2]

tenduke::net::URLBuilder::URLBuilder ( const ::tenduke::net::URLCodec & urls)
explicit

Constructs a new instance.

Parameters
urls-

◆ URLBuilder() [2/2]

tenduke::net::URLBuilder::URLBuilder ( const ::tenduke::net::URLCodec & urls,
const ::tenduke::net::URL * url )

Constructs a new instance, initializing fields from given URL.

Parameters
urls-
url-

Member Function Documentation

◆ appendPath()

URLBuilder & tenduke::net::URLBuilder::appendPath ( const std::string & pathComponent)

Appends a path component.

This method automatically appends "/" as necessary.

Parameters
pathComponent
Returns
this instance for method-chaining

◆ baseURL()

xdnet::URLBuilder & tenduke::net::URLBuilder::baseURL ( const ::tenduke::net::URL & url)

Sets the base URL.

Initializes all the fields from the URL, overwriting any existing values.

Parameters
url-
Returns
this instance for method-chaining

◆ build()

URL tenduke::net::URLBuilder::build ( )

Builds the URL.

Returns
the URL

◆ buildPtr()

std::unique_ptr<::URL > tenduke::net::URLBuilder::buildPtr ( )

Builds the URL into a pointer.

Returns
the URL

◆ buildString()

std::string tenduke::net::URLBuilder::buildString ( )

Builds the URL directly into a string.

Returns
the URL as string, encoded as necessary.

◆ encodedQueryParameter() [1/4]

xdnet::URLBuilder & tenduke::net::URLBuilder::encodedQueryParameter ( const char * name,
const char * value )

Adds an encoded query parameter.

The caller has already encoded the parameter name and value: The method will decode them.

Parameters
namename of the parameter
valuevalue of the parameter
Returns
this instance for method-chaining

◆ encodedQueryParameter() [2/4]

xdnet::URLBuilder & tenduke::net::URLBuilder::encodedQueryParameter ( const char * name,
std::size_t nameLength )

Adds an encoded query parameter.

The caller has already encoded the parameter name: The method will decode it.

Parameters
namename of the parameter
nameLengthlength of the parameter
Returns
this instance for method-chaining

◆ encodedQueryParameter() [3/4]

xdnet::URLBuilder & tenduke::net::URLBuilder::encodedQueryParameter ( const char * name,
std::size_t nameLength,
const char * value,
std::size_t valueLength )

Adds an encoded query parameter.

The caller has already encoded the parameter name and value: The method will decode them.

Parameters
namename of the parameter
nameLengthlength of the parameter
valuevalue of the parameter. Optional. If not present, a parameter without value will be created.
valueLengthlength of the value
Returns
this instance for method-chaining

◆ encodedQueryParameter() [4/4]

xdnet::URLBuilder & tenduke::net::URLBuilder::encodedQueryParameter ( const std::string & name,
const std::string & value = "" )

Adds an encoded query parameter.

The caller has already encoded the parameter name and value: The method will decode them.

Parameters
namename of the parameter
valuevalue of the parameter. Optional. If not present, a parameter without value will be created.
Returns
this instance for method-chaining

◆ path() [1/2]

xdnet::URLBuilder & tenduke::net::URLBuilder::path ( const char * path,
std::size_t length )

Sets the entire path: Overwrites any existing path.

Parameters
path-
Returns
this instance for method-chaining.

◆ path() [2/2]

xdnet::URLBuilder & tenduke::net::URLBuilder::path ( const std::string & path)

Sets the entire path: Overwrites any existing path.

Parameters
path-
Returns
this instance for method-chaining.

◆ pctEncode()

std::string tenduke::net::URLBuilder::pctEncode ( const std::string & value) const

Utility to PCT-encode a string.

Parameters
value-
Returns
-

◆ queryParameter() [1/6]

xdnet::URLBuilder & tenduke::net::URLBuilder::queryParameter ( const char * name)

Adds query parameter without a value.

Parameters
name-
Returns
-

◆ queryParameter() [2/6]

xdnet::URLBuilder & tenduke::net::URLBuilder::queryParameter ( const char * name,
const char * value )

Adds query parameter.

Parameters
name-
value-
Returns
-

◆ queryParameter() [3/6]

xdnet::URLBuilder & tenduke::net::URLBuilder::queryParameter ( const char * name,
std::size_t length )

Adds query parameter.

Parameters
name-
length-
Returns
-

◆ queryParameter() [4/6]

xdnet::URLBuilder & tenduke::net::URLBuilder::queryParameter ( const char * name,
std::size_t nameLength,
const char * value,
std::size_t valueLength )

Adds query parameter.

Parameters
name-
nameLength-
value-
valueLength-
Returns
-

◆ queryParameter() [5/6]

xdnet::URLBuilder & tenduke::net::URLBuilder::queryParameter ( const std::string & name)

Adds query parameter without a value.

Parameters
name-
Returns
-

◆ queryParameter() [6/6]

xdnet::URLBuilder & tenduke::net::URLBuilder::queryParameter ( const std::string & name,
const std::string & value )

Adds query parameter.

Parameters
name-
value-
Returns
-

◆ queryParameters()

xdnet::URLBuilder & tenduke::net::URLBuilder::queryParameters ( const std::map< std::string, std::string > & pParameters)

Sets multiple query parameters.

Parameters
pParameters-
Returns
this instance for method-chaining

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