dxd - dynax driver framework 3.0.2
cross platform open source driver development framework
Loading...
Searching...
No Matches
dx::match Struct Reference

which devices a bus takes: any of its dictionaries whose every verb the device states alike, an empty dictionary every device More...

#include <dx_match.h>

Inheritance diagram for dx::match:
Collaboration diagram for dx::match:

Public Types

typedef std::map<std::string, value> dictionary
typedef std::variant<std::string, uint32_t> value

Public Member Functions

 catch(const std::exception &)
template<typename desc_t, size_t size>
 match(const desc_t(& descs)[size], const dictionary& common= {})
 the devices the descs name - per desc its bus's ids, or the names it publishes - every dictionary with the common verbs beside
template<typename lookup_t>
bool operator ()(const lookup_t& lookup) const

Static Public Member Functions

static bool equal(const valuevalue& stated, const valuevalue& valuevalue)
 the device's value against the match's: a number alike or read from the text, a text matching the expression
template<typename desc_t>
static std::optional<value> of(const desc_t& desc, const std::string& verb)
 what a desc states of a verb: its names, its bus's ids and serial number, a device its puuid

Public Attributes

K keys
 STL member.

Static Public Attributes

static constexpr auto interface_class{"InterfaceClassGuid"}
 the device interface class a path belongs to
static constexpr auto model{"model"}
static constexpr auto path{"path"}
 the whole path, a software device's enumerator and instance among it (SWD#<id>#...)
static constexpr auto puuid{"puuid"}
static constexpr auto vendor{"vendor"}
 the identity a desc names that no system states: the names the device publishes, its dxd identity

Detailed Description

which devices a bus takes: any of its dictionaries whose every verb the device states alike, an empty dictionary every device

A verb is the name the device's system gives what it states - IOKit's idVendor, a CoreAudio selector's four characters, a registry value's name -, a bus whose system names nothing names it itself (a Windows hardware id's VID). A value is a number or a text, a text in the match a regular expression over the whole value, regardless of case, read as a number where the device states one. The bus answers every verb ahead of the device, from its system or from a desc it holds (of): a verb neither states takes no device, so no device is started to be asked.

The type is named as a whole: it is constructed from descs, which no level of it could be alone.

Member Typedef Documentation

◆ dictionary

typedef std::map<std::string, value> dx::match::dictionary

◆ value

typedef std::variant<std::string, uint32_t> dx::match::value

Constructor & Destructor Documentation

◆ match()

template<typename desc_t, size_t size>
dx::match::match(const desc_t(&) descs[size], const dictionary& common= {})
inline

the devices the descs name - per desc its bus's ids, or the names it publishes - every dictionary with the common verbs beside

Member Function Documentation

◆ catch()

dx::match::catch(const std::exception&)
inline

◆ equal()

bool dx::match::equal(const value& stated, const value& value)
inlinestatic

the device's value against the match's: a number alike or read from the text, a text matching the expression

Here is the caller graph for this function:

◆ of()

template<typename desc_t>
std::optional<value> dx::match::of(const desc_t& desc, const std::string& verb)
inlinestatic

what a desc states of a verb: its names, its bus's ids and serial number, a device its puuid

Here is the caller graph for this function:

◆ operator ()()

template<typename lookup_t>
bool dx::match::operator ()(const lookup_t& lookup) const
inline

whether the match takes the device: lookup(verb) what the bus's system or a desc it holds states of it, none where neither states the verb

Here is the call graph for this function:

Member Data Documentation

◆ interface_class

auto dx::match::interface_class{"InterfaceClassGuid"}
staticconstexpr

the device interface class a path belongs to

◆ keys

K std::set<K>::keys
inherited

STL member.

◆ model

auto dx::match::model{"model"}
static

◆ path

auto dx::match::path{"path"}
staticconstexpr

the whole path, a software device's enumerator and instance among it (SWD#<id>#...)

◆ puuid

auto dx::match::puuid{"puuid"}
static

◆ vendor

auto dx::match::vendor{"vendor"}
staticconstexpr

the identity a desc names that no system states: the names the device publishes, its dxd identity


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