libbmq  a5f8a06ba1d16cb5a65643e1fa7f1a1d6aadef40
BloombergLP::bmqt::Uri Class Reference

Value semantic type representing a URI.

#include <bmqt_uri.h>

Public Member Functions

 Uri (bslma::Allocator *allocator=0)
 
 Uri (const Uri &original, bslma::Allocator *allocator=0)
 
 Uri (const bsl::string &uri, bslma::Allocator *allocator=0)
 
 Uri (const bslstl::StringRef &uri, bslma::Allocator *allocator=0)
 
 Uri (const char *uri, bslma::Allocator *allocator=0)
 
 ~Uri ()
 Destructor. More...
 
Urioperator= (const Uri &rhs)
 Set the value of this object to the specified rhs. More...
 
const bsl::string & asString () const
 Return the string representation of this URI. More...
 
bool isValid () const
 Return true if this object represents a valid URI. More...
 
bool isCanonical () const
 Return true if this object represents a canonical URI. More...
 
const bslstl::StringRef & scheme () const
 
const bslstl::StringRef & authority () const
 
const bslstl::StringRef & path () const
 
const bslstl::StringRef & qualifiedDomain () const
 
const bslstl::StringRef & domain () const
 
const bslstl::StringRef & tier () const
 
const bslstl::StringRef & queue () const
 
const bslstl::StringRef & id () const
 
bslstl::StringRef canonical () const
 
bsl::ostream & print (bsl::ostream &stream, int level=0, int spacesPerLevel=4) const
 

Static Public Attributes

static const int k_QUEUENAME_MAX_LENGTH = 64
 The maximum authorized length for the queue name part of the URI. More...
 

Friends

struct UriParser
 
class UriBuilder
 
template<class HASH_ALGORITHM >
void hashAppend (HASH_ALGORITHM &hashAlgo, const Uri &uri)
 

Constructor & Destructor Documentation

◆ Uri() [1/5]

BloombergLP::bmqt::Uri::Uri ( bslma::Allocator *  allocator = 0)
explicit

Constructor of an invalid Uri with all fields empty, using the optionally specified allocator.

◆ Uri() [2/5]

BloombergLP::bmqt::Uri::Uri ( const Uri original,
bslma::Allocator *  allocator = 0 
)

Copy constructor, create a new Uri having the same values as the specified original, and using the optionally specified allocator.

◆ Uri() [3/5]

BloombergLP::bmqt::Uri::Uri ( const bsl::string &  uri,
bslma::Allocator *  allocator = 0 
)

Implicit constructor of this object from the specified uri string using the optionally specified allocator. If the uri input string doesn't not represent a valid URI, this object is left in an invalid state (isValid() will return false).

◆ Uri() [4/5]

BloombergLP::bmqt::Uri::Uri ( const bslstl::StringRef &  uri,
bslma::Allocator *  allocator = 0 
)

◆ Uri() [5/5]

BloombergLP::bmqt::Uri::Uri ( const char *  uri,
bslma::Allocator *  allocator = 0 
)

◆ ~Uri()

BloombergLP::bmqt::Uri::~Uri ( )

Member Function Documentation

◆ operator=()

Uri & BloombergLP::bmqt::Uri::operator= ( const Uri rhs)
inline

◆ asString()

const bsl::string & BloombergLP::bmqt::Uri::asString ( ) const
inline

◆ isValid()

bool BloombergLP::bmqt::Uri::isValid ( ) const
inline

◆ isCanonical()

bool BloombergLP::bmqt::Uri::isCanonical ( ) const
inline

◆ scheme()

const bslstl::StringRef & BloombergLP::bmqt::Uri::scheme ( ) const
inline

◆ authority()

const bslstl::StringRef & BloombergLP::bmqt::Uri::authority ( ) const
inline

◆ path()

const bslstl::StringRef & BloombergLP::bmqt::Uri::path ( ) const
inline

Return the corresponding (raw) part of the URI, matching to the URI RFC terminology.

◆ qualifiedDomain()

const bslstl::StringRef & BloombergLP::bmqt::Uri::qualifiedDomain ( ) const
inline

◆ domain()

const bslstl::StringRef & BloombergLP::bmqt::Uri::domain ( ) const
inline

◆ tier()

const bslstl::StringRef & BloombergLP::bmqt::Uri::tier ( ) const
inline

◆ queue()

const bslstl::StringRef & BloombergLP::bmqt::Uri::queue ( ) const
inline

◆ id()

const bslstl::StringRef & BloombergLP::bmqt::Uri::id ( ) const
inline

Return the corresponding (extracted) part of the URI, provided as convenient accessors using the BlazingMQ terminology.

◆ canonical()

bslstl::StringRef BloombergLP::bmqt::Uri::canonical ( ) const
inline

Return the canonical form of the URI. Note that canonical form includes everything except the query part of the URI.

◆ print()

bsl::ostream& BloombergLP::bmqt::Uri::print ( bsl::ostream &  stream,
int  level = 0,
int  spacesPerLevel = 4 
) const

Format this object to the specified output stream at the (absolute value of) the optionally specified indentation level and return a reference to stream. If level is specified, optionally specify spacesPerLevel, the number of spaces per indentation level for this and all of its nested objects. If level is negative, suppress indentation of the first line. If spacesPerLevel is negative format the entire output on one line, suppressing all but the initial indentation (as governed by level). If stream is not valid on entry, this operation has no effect.

Referenced by BloombergLP::bmqt::operator<<().

Friends And Related Function Documentation

◆ UriParser

friend struct UriParser
friend

◆ UriBuilder

friend class UriBuilder
friend

◆ hashAppend

template<class HASH_ALGORITHM >
void hashAppend ( HASH_ALGORITHM &  hashAlgo,
const Uri uri 
)
friend

Member Data Documentation

◆ k_QUEUENAME_MAX_LENGTH

const int BloombergLP::bmqt::Uri::k_QUEUENAME_MAX_LENGTH = 64
static

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