Library: Foundation
Package: UUID
Header: Poco/UUID.h
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 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
UUID_TIME_BASED = 0x01
UUID_DCE_UID = 0x02
UUID_NAME_BASED = 0x03
UUID_RANDOM = 0x04
UUID();
Creates a nil (all zero) UUID.
Copy constructor.
explicit UUID(
const std::string & uuid
);
Parses the UUID from a string.
explicit UUID(
const char * uuid
);
Parses the UUID from a string.
UUID(
const char * bytes,
Version version
);
UUID(
UInt32 timeLow,
UInt32 timeMid,
UInt32 timeHiAndVersion,
UInt16 clockSeq,
UInt8 node[]
);
~UUID();
Destroys the UUID.
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.
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.
static const UUID & dns();
Returns the namespace identifier for the DNS namespace.
bool isNull() const;
Returns true if and only if the UUID is nil (in other words, consists of all zeros).
static const UUID & null();
Returns a null/nil UUID.
static const UUID & oid();
Returns the namespace identifier for the OID namespace.
bool operator != (
const UUID & uuid
) const;
bool operator < (
const UUID & uuid
) const;
bool operator <= (
const UUID & uuid
) const;
UUID & operator = (
const UUID & uuid
);
Assignment operator.
bool operator == (
const UUID & uuid
) const;
bool operator > (
const UUID & uuid
) const;
bool operator >= (
const UUID & uuid
) const;
void parse(
const std::string & uuid
);
Parses the UUID from its string representation.
void swap(
UUID & uuid
);
Swaps the UUID with another one.
std::string toString() const;
Returns a string representation of the UUID consisting of groups of hexadecimal digits separated by hyphens.
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.
static const UUID & uri();
Returns the namespace identifier for the URI (former URL) namespace.
int variant() const;
Returns the variant number of the UUID:
Version version() const;
Returns the version of the UUID.
static const UUID & x500();
Returns the namespace identifier for the X500 namespace.
static void appendHex(
std::string & str,
UInt8 n
);
static void appendHex(
std::string & str,
UInt16 n
);
static void appendHex(
std::string & str,
UInt32 n
);
int compare(
const UUID & uuid
) const;
void fromNetwork();
static UInt8 nibble(
char hex
);
void toNetwork();