Universally unique identifier (UUID) More...
#include "uuid.h"
Public Member Functions | |
UUID () | |
Default constructor. More... | |
UUID (const std::array< uint8_t, 16 > &data) | |
Initialize UUID with a given 16 bytes data buffer. More... | |
UUID (const std::string &uuid) | |
Initialize UUID with a given string. More... | |
UUID (const UUID &)=default | |
UUID (UUID &&) noexcept=default | |
~UUID ()=default | |
const std::array< uint8_t, 16 > & | data () const noexcept |
Get the UUID data buffer. More... | |
std::array< uint8_t, 16 > & | data () noexcept |
Get the UUID data buffer. More... | |
operator bool () const noexcept | |
Check if the UUID is nil UUID0 (all bits set to zero) More... | |
UUID & | operator= (const std::array< uint8_t, 16 > &data) |
UUID & | operator= (const std::string &uuid) |
UUID & | operator= (const UUID &)=default |
UUID & | operator= (UUID &&) noexcept=default |
std::string | string () const |
Get string from the current UUID in format "00000000-0000-0000-0000-000000000000". More... | |
void | swap (UUID &uuid) noexcept |
Swap two instances. More... | |
Static Public Member Functions | |
static UUID | Nil () |
Generate nil UUID0 (all bits set to zero) More... | |
static UUID | Random () |
Generate random UUID4 (randomly or pseudo-randomly generated version) More... | |
static UUID | Sequential () |
Generate sequential UUID1 (time based version) More... | |
Private Attributes | |
std::array< uint8_t, 16 > | _data |
Friends | |
bool | operator!= (const UUID &uuid1, const UUID &uuid2) |
bool | operator< (const UUID &uuid1, const UUID &uuid2) |
std::ostream & | operator<< (std::ostream &os, const UUID &uuid) |
Output instance into the given output stream. More... | |
bool | operator<= (const UUID &uuid1, const UUID &uuid2) |
bool | operator== (const UUID &uuid1, const UUID &uuid2) |
bool | operator> (const UUID &uuid1, const UUID &uuid2) |
bool | operator>= (const UUID &uuid1, const UUID &uuid2) |
void | swap (UUID &uuid1, UUID &uuid2) noexcept |
Universally unique identifier (UUID)
A universally unique identifier (UUID) is an identifier standard used in software construction. This implementation generates the following UUID types:
A UUID is simply a 128-bit value: "123e4567-e89b-12d3-a456-426655440000"
Not thread-safe.
https://en.wikipedia.org/wiki/Universally_unique_identifier https://www.ietf.org/rfc/rfc4122.txt
|
inline |
Default constructor.
Definition at line 38 of file uuid.h.
References _data.
Referenced by Nil(), and operator=().
|
explicit |
|
inlineexplicit |
|
default |
|
defaultnoexcept |
|
default |
|
inlinenoexcept |
|
inlinenoexcept |
Get the UUID data buffer.
Definition at line 78 of file uuid.h.
References _data.
Referenced by operator=().
|
inlinestatic |
Generate nil UUID0 (all bits set to zero)
Definition at line 86 of file uuid.h.
References UUID().
Referenced by operator bool(), and ns3::QKDKeyManagerSystemApplication::RegisterApplicationEntry().
|
inlineexplicitnoexcept |
|
inline |
|
inline |
|
static |
Generate random UUID4 (randomly or pseudo-randomly generated version)
Definition at line 148 of file uuid.cc.
References NS_FATAL_ERROR, and test-ns3::result.
Referenced by ns3::QKDApp004::QKDApp004(), ns3::QKDApp014::QKDApp014(), ns3::QKDApplicationEntry::QKDApplicationEntry(), ns3::QKDKeyAssociationLinkEntry::QKDKeyAssociationLinkEntry(), ns3::QKDKeyManagerSystemApplication::GenerateKeyId(), and ns3::QKDKeyManagerSystemApplication::GenerateKsid().
|
static |
Generate sequential UUID1 (time based version)
Definition at line 92 of file uuid.cc.
References NS_FATAL_ERROR, and test-ns3::result.
Referenced by ns3::QKDApp004::SendMaliciousRequestToKMS().
std::string ns3::UUID::string | ( | ) | const |
Get string from the current UUID in format "00000000-0000-0000-0000-000000000000".
Definition at line 74 of file uuid.cc.
References _data, and test-ns3::result.
Referenced by ns3::QKDConnectionRegister::AddKeyAssociationEntry(), ns3::QKDKeyManagerSystemApplication::AddNewLink(), ns3::QKDApp004::CreateKeyQueues(), ns3::QKDApp014::DataPacketReceivedFromApp(), ns3::QKDKeyManagerSystemApplication::GenerateKeyId(), ns3::QKDKeyManagerSystemApplication::GenerateKsid(), ns3::QKDApp014::GetKeysFromKMS(), ns3::QKDApp014::GetStatusFromKMS(), ns3::QKDKeyManagerSystemApplication::NegotiateKeysForAssociation(), ns3::QKDApp004::OpenConnect(), ns3::QKDKeyManagerSystemApplication::ProcessAddKeysRequest(), ns3::QKDKeyManagerSystemApplication::ProcessAddKeysResponse(), ns3::QKDKeyManagerSystemApplication::ProcessCloseRequest(), ns3::QKDKeyManagerSystemApplication::ProcessGetKey004Request(), ns3::QKDKeyManagerSystemApplication::ProcessNewAppRequest(), ns3::QKDKeyManagerSystemApplication::ProcessNewAppResponse(), ns3::QKDKeyManagerSystemApplication::ProcessOpenConnectRequest(), ns3::QKDKeyManagerSystemApplication::ProcessQoSRequest(), ns3::QKDKeyManagerSystemApplication::ProcessRequest(), ns3::QKDKeyManagerSystemApplication::ProcessTransformRequest(), ns3::QKDKeyManagerSystemApplication::ProcessTransformResponse(), ns3::QKDKeyManagerSystemApplication::RegisterApplicationEntry(), ns3::QKDControl::RegisterQKDApplications(), ns3::QKDKeyManagerSystemApplication::ReleaseAssociation(), ns3::QKDApp004::SendKsidRequest(), ns3::QKDApp004::SendMaliciousRequestToKMS(), ns3::QKDApp014::SendPacket(), ns3::QKDKeyManagerSystemApplication::SendQKDLinkStatusToSDN(), and ns3::QKDKeyManagerSystemApplication::TransformKeys().
|
inlinenoexcept |
Swap two instances.
Definition at line 205 of file uuid.cc.
References ns3::swap().
|
friend |
|
private |