class Poco::UUID
Overview
A UUID is an identifier that is unique across both space and time, with respect to the space of all UUIDs. Moreā¦
#include <UUID.h> class UUID { public: // enums enum Version; // construction UUID(); UUID(const UUID& uuid); UUID(const std::string& uuid); UUID(const char* uuid); // methods UUID& operator=(const UUID& uuid); void swap(UUID& uuid); void parse(const std::string& uuid); bool tryParse(const std::string& uuid); std::string toString() const; void copyFrom(const char* buffer); void copyTo(char* buffer) const; Version version() const; int variant() const; bool operator==(const UUID& uuid) const; bool operator!=(const UUID& uuid) const; bool operator<(const UUID& uuid) const; bool operator<=(const UUID& uuid) const; bool operator>(const UUID& uuid) const; bool operator>=(const UUID& uuid) const; bool isNull() const; static const UUID& null(); static const UUID& dns(); static const UUID& uri(); static const UUID& oid(); static const UUID& x500(); protected: // construction UUID( UInt32 timeLow, UInt32 timeMid, UInt32 timeHiAndVersion, UInt16 clockSeq, UInt8 node [] ); UUID( const char* bytes, Version version ); // methods int compare(const UUID& uuid) const; void fromNetwork(); void toNetwork(); static void appendHex( std::string& str, UInt8 n ); static void appendHex( std::string& str, UInt16 n ); static void appendHex( std::string& str, UInt32 n ); static Int16 nibble(char hex); };
Detailed Documentation
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
Construction
UUID()
Creates a nil (all zero) UUID.
UUID(const UUID& uuid)
Copy constructor.
UUID(const std::string& uuid)
Parses the UUID from a string.
UUID(const char* uuid)
Parses the UUID from a string.
Methods
UUID& operator=(const UUID& uuid)
Assignment operator.
void swap(UUID& uuid)
Swaps the UUID with another one.
void parse(const std::string& uuid)
Parses the UUID from its string representation.
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.
std::string toString() const
Returns a string representation of the UUID consisting of groups of hexadecimal digits separated by hyphens.
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.
Version version() const
Returns the version of the UUID.
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
bool isNull() const
Returns true iff the UUID is nil (in other words, consists of all zeros).
static const UUID& null()
Returns a null/nil UUID.
static const UUID& dns()
Returns the namespace identifier for the DNS namespace.
static const UUID& uri()
Returns the namespace identifier for the URI (former URL) namespace.
static const UUID& oid()
Returns the namespace identifier for the OID namespace.
static const UUID& x500()
Returns the namespace identifier for the X500 namespace.