4#ifndef _Stroika_Frameworks_UPnP_DeviceDescription_h_
5#define _Stroika_Frameworks_UPnP_DeviceDescription_h_ 1
7#include "Stroika/Frameworks/StroikaPreComp.h"
10#include "Stroika/Foundation/Common/Common.h"
11#include "Stroika/Foundation/Containers/Collection.h"
13#include "Stroika/Foundation/DataExchange/ObjectVariantMapper.h"
16#include "Stroika/Foundation/Execution/LazyInitialized.h"
20#include "Stroika/Frameworks/UPnP/Device.h"
27namespace Stroika::Frameworks::UPnP {
53 optional<URI> fPresentationURL;
57 optional<URI> fManufacturingURL;
58 optional<String> fModelDescription;
60 optional<String> fModelNumber;
61 optional<URI> fModelURL;
62 optional<String> fSerialNumber;
75 optional<String> fUPC;
84 uint16_t fHorizontalPixels{16};
85 uint16_t fVerticalPixels{16};
86 uint16_t fColorDepth{8};
94 optional<Collection<Icon>> fIcons;
113 optional<Collection<Service>> fServices;
206 Memory::BLOB Serialize (
const DeviceDescription& dd,
const DeviceDescription::Options& options = {});
215 DeviceDescription DeSerialize (
const Memory::BLOB& b,
const DeviceDescription::Options& options = {});
217#if qStroika_Foundation_DataExchange_XML_SupportParsing and qStroika_Foundation_DataExchange_XML_SupportSchema and qStroika_Foundation_DataExchange_XML_SupportDOM
242#include "DeviceDescription.inl"
String is like std::u32string, except it is much easier to use, often much more space efficient,...
A Collection<T> is a container to manage an un-ordered collection of items, without equality defined ...
ObjectVariantMapper can be used to map C++ types to and from variant-union types, which can be transp...
value-object, where the value construction is delayed until first needed (can be handy to avoid c++ i...
How XML is read and written - for now, with which provider - taken last by each XML function (DOM::Do...
nonvirtual String ToString() const
What Serialize and DeSerialize of a device description are told - defaulted, so a caller says only wh...
Foundation::DataExchange::XML::Options fXMLOptions
The XML provider that reads, and that checks what is written - by default, Stroika's default provider...
Foundation::DataExchange::XML::Schema::Ptr fValidateReadAgainst
Check a description being read against this schema - DeviceDescriptionSchema - throwing where it does...
bool fValidateWrite
Check what Serialize writes against DeviceDescriptionSchema, throwing BadFormatException where it doe...
nonvirtual String ToString() const
nonvirtual String ToString() const
nonvirtual DeviceDescription Resolve(const URI &descriptionURL) const
This description with every URL absolute - each relative one resolved against fURLBase,...
static const Foundation::Execution::LazyInitialized< Foundation::DataExchange::ObjectVariantMapper > kMapper