31 explicit URN(
const char* s);
35 explicit URN(
const char*
nid,
const char*
nss);
122 bool validUrn = this->
Split(s);
133 bool validUrn = this->
Split(s);
190 this->
string = rhs.
string;
204 return ((this->
nid == rhs.
nid) &&
205 (this->nss == rhs.
nss) &&
206 (this->query == rhs.
query) &&
217 return !(*
this == rhs);
252 this->
string.Clear();
412IO::URN operator ""_urn(
const char* c, std::size_t s);
An URI object can split a Uniform Resource Identifier string into its components or build a string fr...
Definition uri.h:67
A URN (Uniform Resource Name) is a URI (Uniform Resource Identifier) that uses the "urn" scheme.
Definition urn.h:24
bool IsEmpty() const
return true if the URN is empty
Definition urn.h:225
void Set(const Util::String &s)
set complete URI string
Definition urn.h:271
bool Split(const Util::String &s)
split string into components
Definition urn.cc:35
const Util::String & GetSpecific() const
get Specific component (can be empty)
Definition urn.h:311
static Util::Dictionary< Util::StringAtom, Util::StringAtom > ExportExtensions
Definition urn.h:101
void SetSpecific(const Util::String &s)
set Specific component
Definition urn.h:300
static Util::StringAtom WorkRoot
Definition urn.h:102
static void SetWorkRoot(const Util::StringAtom &root)
Set the work folder.
Definition urn.h:403
void SetFragment(const Util::String &s)
set fragment component
Definition urn.h:340
Util::String string
Definition urn.h:99
Util::String query
Definition urn.h:97
Util::String nss
Definition urn.h:96
void SetQuery(const Util::String &s)
set query component
Definition urn.h:320
static void AddExportMapping(const Util::StringAtom &ns, const Util::StringAtom &extension)
Add an export binding using namespace -> file extension to use with ExportURI.
Definition urn.h:383
Util::String nid
Definition urn.h:95
Util::String fragment
Definition urn.h:98
void Clear()
clear the URN
Definition urn.h:245
const Util::String & GetNamespace() const
get Namespace component
Definition urn.h:291
const Util::String & GetQuery() const
get query component (can be empty)
Definition urn.h:331
bool IsValid() const
return true if the URN is not empty
Definition urn.h:235
void Build()
build string from components
Definition urn.cc:99
static Util::Dictionary< Util::StringAtom, Util::StringAtom > WorkExtensions
Definition urn.h:101
const Util::String & GetFragment() const
get fragment component (can be empty)
Definition urn.h:351
const Util::String & AsString()
return as concatenated string
Definition urn.h:259
void SetNamespace(const Util::String &s)
set Namespace component
Definition urn.h:280
bool operator!=(const URN &rhs) const
inequality operator
Definition urn.h:215
URN()
default constructor
Definition urn.h:109
const IO::URI ExportURI() const
Convert to an export URI using file extension, mappings are setup with AddExportMapping.
Definition urn.h:360
void operator=(const URN &rhs)
assignmnent operator
Definition urn.h:183
bool isDirty
Definition urn.h:94
static void AddWorkMapping(const Util::StringAtom &ns, const Util::StringAtom &extension)
Add a work binding using namespace -> file extension to use with WorkURI.
Definition urn.h:393
const IO::URI WorkURI(const Util::StringAtom &root)
Convert to a work URI using project folder and extension, mappings are setup with AddWorkMapping.
Definition urn.h:371
bool operator==(const URN &rhs) const
equality operator
Definition urn.h:198
bool isEmpty
Definition urn.h:93
A collection of key/value pairs with quick value retrieval by key at roughly O(log n).
Definition dictionary.h:35
A StringAtom.
Definition stringatom.h:22
String AsString() const
get containted string as string object (SLOW!!!)
Definition stringatom.h:372
Nebula's universal string class.
Definition string.h:50
const char * AsCharPtr() const
return contents as character pointer
Definition string.h:577
#define n_assert2(exp, msg)
Definition debug.h:59
#define n_assert(exp)
Definition debug.h:58
Instances of wrapped stream classes.
Definition multiplayerfeatureunit.cc:324
auto Format
Definition string.h:1313
static const int InvalidIndex
Definition types.h:47
int IndexT
Definition types.h:41