6#include "vtkIOCoreModule.h"
15VTK_ABI_NAMESPACE_BEGIN
46 : Value{
std::move(str) }
75 const std::string&
GetValue() const noexcept {
return this->Value; }
80 bool IsDefined() const noexcept {
return this->Defined; }
85 explicit operator bool() const noexcept {
return this->Defined; }
95 return this->Value == other.Value && this->Defined == other.Defined;
103 bool Defined =
false;
144 return PercentEncode(str.data(), str.size());
174 return PercentDecode(str.data(), str.size());
239 return Parse(uri.data(), uri.size());
307 bool IsReference()
const {
return this->IsRelative() || this->IsFull(); }
311 bool IsAbsolute()
const {
return this->Scheme && !this->Fragment; }
313 bool IsFull()
const {
return this->Scheme.IsDefined(); }
317 return !this->Scheme && !this->Authority && this->Path.GetValue().empty() && !this->Query &&
323 return !this->Scheme && !this->Authority && this->Path.GetValue().empty() && !this->Query &&
a simple class to control print indentation
abstract base class for most VTK objects
Hold a reference to a vtkObjectBase instance.
Represent an URI component.
~vtkURIComponent()=default
vtkURIComponent & operator=(const vtkURIComponent &)=default
bool operator!=(const vtkURIComponent &other) const noexcept
vtkURIComponent & operator=(vtkURIComponent &&)=default
vtkURIComponent()=default
Default constructor.
vtkURIComponent(UndefinedTag)
Constructs an undefined component.
bool IsDefined() const noexcept
const std::string & GetValue() const noexcept
vtkURIComponent(vtkURIComponent &&)=default
static constexpr UndefinedTag Undefined
vtkURIComponent(const vtkURIComponent &)=default
bool operator==(const vtkURIComponent &other) const noexcept
vtkURIComponent(const char *str)
Default constructor.
vtkURIComponent(std::string str)
Default constructor.
static std::string PercentDecode(const std::string &str)
Calls PercentDecode(str.data(), str.size())
static std::string PercentEncode(const char *str, std::size_t size)
Encode a string into an URI compatible, percent-encoded, string.
bool IsEmpty() const
URI types determination.
friend vtkSmartPointer< vtkURI > MakeUnchecked(vtkURIComponent scheme, vtkURIComponent authority, vtkURIComponent path, vtkURIComponent query, vtkURIComponent fragment)
std::string ToString() const
Construct the string representation of the URI.
bool IsSameDocRef() const
URI types determination.
static VTK_WRAPEXCLUDE vtkSmartPointer< vtkURI > Make(vtkURIComponent scheme=vtkURIComponent::Undefined, vtkURIComponent authority=vtkURIComponent::Undefined, vtkURIComponent path="", vtkURIComponent query=vtkURIComponent::Undefined, vtkURIComponent fragment=vtkURIComponent::Undefined)
Create a new vtkURI with specified components.
bool IsAbsolute() const
URI types determination.
static vtkSmartPointer< vtkURI > Parse(const char *uri, std::size_t size)
Create a new URI from a string.
friend vtkSmartPointer< vtkURI > Clone(const vtkURI *other)
bool IsReference() const
URI types determination.
static vtkSmartPointer< vtkURI > Clone(const vtkURI *other)
Clone a vtkURI.
const vtkURIComponent & GetScheme() const
URI scheme.
const vtkURIComponent & GetPath() const
URI path.
bool IsFull() const
URI types determination.
const vtkURIComponent & GetFragment() const
URI fragment.
static std::string PercentEncode(const std::string &str)
Calls PercentEncode(str.data(), str.size())
static vtkSmartPointer< vtkURI > Resolve(const vtkURI *baseURI, const vtkURI *uri)
Resolve an URI from a base URI.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
const vtkURIComponent & GetQuery() const
URI query.
static vtkURI * New()
Construct a new vtkURI.
bool IsRelative() const
URI types determination.
vtkSmartPointer< vtkURI > Clone() const
const vtkURIComponent & GetAuthority() const
URI authority.
static std::string PercentDecode(const char *str, std::size_t size)
Decode percent-encoded values from given string.
static vtkSmartPointer< vtkURI > Parse(const std::string &uri)
Create a new URI from a string.