EtcPal
HEAD (unstable)
ETC Platform Abstraction Layer (EtcPal)
|
View other versions:
|
A wrapper class for the EtcPal UUID type.
Provides C++ syntactic sugar for working with UUIDs. UUIDs are considered immutable after they are created, so there is no non-const access to the underlying data as of now.
Public Member Functions | |
Uuid ()=default | |
Constructs a null UUID by default. | |
Uuid (const uint8_t *data) noexcept | |
Construct a UUID from raw data. More... | |
constexpr | Uuid (const EtcPalUuid &c_uuid) noexcept |
Construct a UUID copied from an instance of the C EtcPalUuid type. | |
Uuid & | operator= (const EtcPalUuid &c_uuid) noexcept |
Assign an instance of the C EtcPalUuid type to an instance of this class. | |
constexpr const EtcPalUuid & | get () const noexcept |
Get a reference to the underlying C type. | |
const uint8_t * | data () const noexcept |
Get the raw data of a UUID. More... | |
std::string | ToString () const |
Convert the UUID to a string representation formatted per RFC 4122. | |
bool | IsNull () const noexcept |
Check if a UUID is null (all 0's). | |
UuidVersion | version () const noexcept |
Get the version type of a UUID. More... | |
UUID field accessors | |
uint32_t | time_low () const noexcept |
Get the time_low portion of a UUID. | |
uint16_t | time_mid () const noexcept |
Get the time_mid portion of a UUID. | |
uint16_t | time_hi_and_version () const noexcept |
Get the time_hi_and_version portion of a UUID. | |
std::array< uint8_t, 8 > | clock_seq_and_node () const noexcept |
Get the remaining portion of a UUID, including clock_seq_hi_and_res, clock_seq_low, and node. | |
Static Public Member Functions | |
static Uuid | FromString (const char *uuid_str) noexcept |
Create a UUID from a string representation. More... | |
static Uuid | FromString (const std::string &uuid_str) noexcept |
Create a UUID from a string representation. More... | |
static Uuid | V1 () noexcept |
Generate and return a Version 1 UUID. More... | |
static Uuid | V3 (const Uuid &ns, const void *name, size_t name_len) noexcept |
Generate and return a Version 3 UUID. More... | |
static Uuid | V3 (const Uuid &ns, const char *name) noexcept |
Generate and return a Version 3 UUID. More... | |
static Uuid | V3 (const Uuid &ns, const std::string &name) noexcept |
Generate and return a Version 3 UUID. More... | |
static Uuid | V4 () noexcept |
Generate and return a Version 4 UUID. More... | |
static Uuid | V5 (const Uuid &ns, const void *name, size_t name_len) noexcept |
Generate and return a Version 5 UUID. More... | |
static Uuid | V5 (const Uuid &ns, const char *name) noexcept |
Generate and return a Version 5 UUID. More... | |
static Uuid | V5 (const Uuid &ns, const std::string &name) noexcept |
Generate and return a Version 5 UUID. More... | |
static Uuid | OsPreferred () noexcept |
Generate and return a UUID of the version preferred by the underlying OS. More... | |
static Uuid | Device (const std::string &device_str, const uint8_t *mac_addr, uint32_t uuid_num) noexcept |
Generate and return a Device UUID. More... | |
static Uuid | Device (const std::string &device_str, const std::array< uint8_t, 6 > &mac_addr, uint32_t uuid_num) noexcept |
Generate and return a Device UUID. More... | |
|
inlinenoexcept |
Construct a UUID from raw data.
data | The raw data array, must be at least ETCPAL_UUID_BYTES in length. |
|
inlinenoexcept |
Get the raw data of a UUID.
|
inlinestaticnoexcept |
Generate and return a Device UUID.
See etcpal_generate_device_uuid() for more information.
|
inlinestaticnoexcept |
Generate and return a Device UUID.
See etcpal_generate_device_uuid() for more information.
|
inlinestaticnoexcept |
Create a UUID from a string representation.
|
inlinestaticnoexcept |
Create a UUID from a string representation.
|
inlinestaticnoexcept |
Generate and return a UUID of the version preferred by the underlying OS.
If not implemented, returns a null UUID. See etcpal_generate_os_preferred_uuid() for more information.
|
inlinestaticnoexcept |
Generate and return a Version 1 UUID.
If not implemented, returns a null UUID. See etcpal_generate_v1_uuid() for more information.
Generate and return a Version 3 UUID.
ns | UUID to use as a namespace. |
name | A null-terminated C string representing the name to convert into a UUID. |
See etcpal_generate_v3_uuid() for more information.
Generate and return a Version 3 UUID.
ns | UUID to use as a namespace. |
name | A string representing the name to convert into a UUID. |
See etcpal_generate_v3_uuid() for more information.
Generate and return a Version 3 UUID.
See etcpal_generate_v3_uuid() for more information.
|
inlinestaticnoexcept |
Generate and return a Version 4 UUID.
If not implemented, returns a null UUID. See etcpal_generate_v4_uuid() for more information.
Generate and return a Version 5 UUID.
ns | UUID to use as a namespace. |
name | A null-terminated C string representing the name to convert into a UUID. |
See etcpal_generate_v5_uuid() for more information.
Generate and return a Version 5 UUID.
ns | UUID to use as a namespace. |
name | A string representing the name to convert into a UUID. |
See etcpal_generate_v5_uuid() for more information.
Generate and return a Version 5 UUID.
See etcpal_generate_v5_uuid() for more information.
|
inlinenoexcept |
Get the version type of a UUID.