25 #define UPNP_URN_KIND_MAP(XX) \ 27 XX(uuid, "uuid:{uuid}") \ 28 XX(root, "upnp:rootdevice" \ 29 "uuid:{uuid}::upnp:rootdevice") \ 30 XX(device, "urn:{domain}:device:{deviceType}:{version}" \ 31 "uuid:{uuid}::urn:{domain}:device:{deviceType}:{version}") \ 32 XX(service, "urn:{domain}:service:{serviceType}:{version}" \ 33 "uuid:{uuid}::urn:{domain}:service:{serviceType}:{version}") 44 #define XX(tag, comment) tag, 67 : kind(kind), uuid(uuid), domain(domain), type(type), version(version ?: 1)
72 :
Urn(kind,
String(uuid), domain, type, version)
77 :
Urn(kind, uuid, domain, type, version.toInt())
81 explicit Urn(
const char* urn)
131 return kind != Kind::none;
170 template <
typename TVersion>
172 :
Urn(
Kind::device, nullptr, domain, type, version)
176 template <
typename TUu
id,
typename TVersion>
178 :
Urn(
Kind::device, uuid, domain, type, version)
188 template <
typename TVersion>
190 :
Urn(
Kind::service, nullptr, domain, type, version)
194 template <
typename TUu
id,
typename TVersion>
196 :
Urn(
Kind::service, uuid, domain, type, version)
Urn(Kind kind, const String &uuid, const String &domain, const String &type, const String &version)
Definition: Urn.h:76
ServiceUrn(const TUuid &uuid, const String &domain, const String &type, const TVersion &version)
Definition: Urn.h:195
const char * c_str() const
Get a constant (un-modifiable) pointer to String content.
Definition: WString.h:616
DeviceUrn(const String &domain, const String &type, const TVersion &version)
Definition: Urn.h:171
String type
e.g. "Basic"
Definition: Urn.h:144
Urn(const char *urn)
Definition: Urn.h:81
RootDeviceUrn()
Definition: Urn.h:154
A UPnP Service URN.
Definition: Urn.h:186
bool operator==(const Urn &other) const
#define UPNP_URN_KIND_MAP(XX)
Definition: Urn.h:25
The String class.
Definition: WString.h:136
Urn(Urn &&urn)
Definition: Urn.h:61
uint8_t version
e.g. 1
Definition: Urn.h:145
Urn(const String &urn)
Definition: Urn.h:86
Kind kind
Definition: Urn.h:141
A UPnP Device URN.
Definition: Urn.h:167
bool decompose(const String &s)
Definition: Urn.h:109
Structure for UPnP URNs.
Definition: Urn.h:40
Urn(Kind kind, const Uuid &uuid, const String &domain, const String &type, uint8_t version)
Definition: Urn.h:71
Urn & operator=(const Urn &urn)
Definition: Urn.h:91
ServiceUrn(const String &domain, const String &type, const TVersion &version)
Definition: Urn.h:189
A UPnP root device URN.
Definition: Urn.h:151
DeviceUrn(const TUuid &uuid, const String &domain, const String &type, const TVersion &version)
Definition: Urn.h:177
Urn(Kind kind=Kind::none)
Definition: Urn.h:49
Class for manipulating UUID (aka GUID) entities.
Definition: Uuid.h:26
Urn & operator=(const String &urn)
Definition: Urn.h:101
bool decompose(const char *s)
Urn(const Urn &urn)
Definition: Urn.h:57
bool operator==(const String &urn) const
Definition: Urn.h:136
bool fromString(const char *s, Urn &urn)
Definition: Urn.h:210
String domain
e.g. PnP::schemas_upnp_org
Definition: Urn.h:143
String uuid
Definition: Urn.h:142
Urn(Kind kind, const String &uuid, const String &domain, const String &type, uint8_t version)
Definition: Urn.h:66
String toString() const
Get URN string.
Urn(const Uuid &uuid)
Definition: Urn.h:53