Library: Foundation
Package: UUID
Header: Poco/UUID.h
Description
A UUID is an identifier that is unique across both space and time, with respect to the space of all UUIDs. Since a UUID is a fixed size and contains a time field, it is possible for values to rollover (around A.D. 3400, depending on the specific algorithm used). A UUID can be used for multiple purposes, from tagging objects with an extremely short lifetime, to reliably identifying very persistent objects across a network.
This class implements a Universal Unique Identifier, as specified in Appendix A of the DCE 1.1 Remote Procedure Call Specification (http://www.opengroup.org/onlinepubs/9629399/), RFC 2518 (WebDAV), section 6.4.1 and the UUIDs and GUIDs internet draft by Leach/Salz from February, 1998 (http://www.ics.uci.edu/~ejw/authoring/uuid-guid/draft-leach-uuids-guids-01.txt) and also http://tools.ietf.org/html/draft-mealling-uuid-urn-05
Member Summary
Member Functions: appendHex, compare, copyFrom, copyTo, dns, fromNetwork, isNull, nibble, null, oid, operator !=, operator <, operator <=, operator =, operator ==, operator >, operator >=, parse, swap, toNetwork, toString, tryParse, uri, variant, version, x500
Enumerations
Version
UUID_TIME_BASED = 0x01
UUID_DCE_UID = 0x02
UUID_NAME_BASED = 0x03
UUID_RANDOM = 0x04
UUID_NAME_BASED_SHA1 = 0x05
Constructors
UUID
UUID();
Creates a nil (all zero) UUID.
UUID
Copy constructor.
UUID
explicit UUID(
const std::string & uuid
);
Parses the UUID from a string.
UUID
explicit UUID(
const char * uuid
);
Parses the UUID from a string.
UUID
UUID(
const char * bytes,
Version version
);
UUID
UUID(
UInt32 timeLow,
UInt32 timeMid,
UInt32 timeHiAndVersion,
UInt16 clockSeq,
UInt8 node[]
);
Destructor
~UUID
~UUID();
Destroys the UUID.
Member Functions
copyFrom
void copyFrom(
const char * buffer
);
Copies the UUID (16 bytes) from a buffer or byte array. The UUID fields are expected to be stored in network byte order. The buffer need not be aligned.
copyTo
void copyTo(
char * buffer
) const;
Copies the UUID to the buffer. The fields are in network byte order. The buffer need not be aligned. There must have room for at least 16 bytes.
dns
static const UUID & dns();
Returns the namespace identifier for the DNS namespace.
isNull
bool isNull() const;
Returns true iff the UUID is nil (in other words, consists of all zeros).
null
static const UUID & null();
Returns a null/nil UUID.
oid
static const UUID & oid();
Returns the namespace identifier for the OID namespace.
operator !=
bool operator != (
const UUID & uuid
) const;
operator <
bool operator < (
const UUID & uuid
) const;
operator <=
bool operator <= (
const UUID & uuid
) const;
operator =
UUID & operator = (
const UUID & uuid
);
Assignment operator.
operator ==
bool operator == (
const UUID & uuid
) const;
operator >
bool operator > (
const UUID & uuid
) const;
operator >=
bool operator >= (
const UUID & uuid
) const;
parse
void parse(
const std::string & uuid
);
Parses the UUID from its string representation.
swap
void swap(
UUID & uuid
) noexcept;
Swaps the UUID with another one.
toString
std::string toString() const;
Returns a string representation of the UUID consisting of groups of hexadecimal digits separated by hyphens.
tryParse
bool tryParse(
const std::string & uuid
);
Tries to interpret the given string as an UUID. If the UUID is syntactically valid, assigns the members and returns true. Otherwise leaves the object unchanged and returns false.
uri
static const UUID & uri();
Returns the namespace identifier for the URI (former URL) namespace.
variant
int variant() const;
Returns the variant number of the UUID:
- 0 reserved for NCS backward compatibility
- 2 the Leach-Salz variant (used by this class)
- 6 reserved, Microsoft Corporation backward compatibility
- 7 reserved for future definition
version
Version version() const;
Returns the version of the UUID.
x500
static const UUID & x500();
Returns the namespace identifier for the X500 namespace.
appendHex
static void appendHex(
std::string & str,
UInt8 n
);
appendHex
static void appendHex(
std::string & str,
UInt16 n
);
appendHex
static void appendHex(
std::string & str,
UInt32 n
);
compare
int compare(
const UUID & uuid
) const;
fromNetwork
void fromNetwork();
nibble
static Int16 nibble(
char hex
);
toNetwork
void toNetwork();