OW_NAMESPACE::UUID Class Reference

UUIDs (Universally Unique IDentifiers), also known as GUIDs (Globally Unique IDentifiers), are 128 bits long. More...

#include <OW_UUID.hpp>

List of all members.

Public Member Functions

 UUID ()
 Create a new UUID.
 UUID (const String &uuidStr)
 Construct a UUID from string representation.
String toString () const
 Get the string representation of this UUID.

Private Attributes

unsigned char m_uuid [16]

Friends

bool operator== (const UUID &x, const UUID &y)
bool operator< (const UUID &x, const UUID &y)


Detailed Description

UUIDs (Universally Unique IDentifiers), also known as GUIDs (Globally Unique IDentifiers), are 128 bits long.

It is either guaranteed to be different from all other UUIDs/GUIDs generated until 3400 A.D. or extremely likely to be different. sizeof(UUID) == 16. The internal data is stored in network byte order, independent of host byte order.

This implementation based off of IETF internet draft: draft-leach-uuids-guids-01.txt That has expired, so if you want a real spec, see: DCE: Remote Procedure Call, Open Group CAE Specification C309 ISBN 1-85912-041-5 28cm. 674p. pbk. 1,655g. 8/94

Definition at line 58 of file OW_UUID.hpp.


Constructor & Destructor Documentation

OW_NAMESPACE::UUID::UUID  ) 
 

Create a new UUID.

Version 1, based on MAC address (or random if not available) and time+counter.

Definition at line 202 of file OW_UUID.cpp.

References OW_NAMESPACE::g_guard, OW_NAMESPACE::g_state, OW_NAMESPACE::getCurrentTime(), OW_NAMESPACE::getNodeIdentifier(), m_uuid, OW_NAMESPACE::NonRecursiveMutexLock::release(), and timestamp.

OW_NAMESPACE::UUID::UUID const String uuidStr  ) 
 

Construct a UUID from string representation.

The formal definition of the UUID string representation is provided by the following extended BNF:

UUID = <time_low> "-" <time_mid> "-" <time_high_and_version> "-" <clock_seq_and_reserved> <clock_seq_low> "-" <node> time_low = 4*<hexOctet> time_mid = 2*<hexOctet> time_high_and_version = 2*<hexOctet> clock_seq_and_reserved = <hexOctet> clock_seq_low = <hexOctet> node = 6*<hexOctet> hexOctet = <hexDigit> <hexDigit> hexDigit = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" | "a" | "b" | "c" | "d" | "e" | "f" | "A" | "B" | "C" | "D" | "E" | "F"

The following is an example of the string representation of a UUID: f81d4fae-7dec-11d0-a765-00a0c91e6bf6

Exceptions:
UUIDException if uuidStr isn't valid.

Definition at line 251 of file OW_UUID.cpp.

References OW_NAMESPACE::String::c_str(), OW_NAMESPACE::String::length(), OW_THROW, and s.


Member Function Documentation

String OW_NAMESPACE::UUID::toString  )  const
 

Get the string representation of this UUID.

The following is an example of the string representation of a UUID: f81d4fae-7dec-11d0-a765-00a0c91e6bf6

Definition at line 277 of file OW_UUID.cpp.

References OW_NAMESPACE::String::E_TAKE_OWNERSHIP, m_uuid, OW_NAMESPACE::toHexHi(), and OW_NAMESPACE::toHexLow().

Referenced by OW_NAMESPACE::generateNewNonce().


Friends And Related Function Documentation

bool operator< const UUID x,
const UUID y
[friend]
 

Definition at line 313 of file OW_UUID.cpp.

bool operator== const UUID x,
const UUID y
[friend]
 

Definition at line 308 of file OW_UUID.cpp.


Member Data Documentation

unsigned char OW_NAMESPACE::UUID::m_uuid[16] [private]
 

Definition at line 99 of file OW_UUID.hpp.

Referenced by OW_NAMESPACE::operator<(), OW_NAMESPACE::operator==(), toString(), and UUID().


The documentation for this class was generated from the following files:
Generated on Thu Feb 9 09:14:51 2006 for openwbem by  doxygen 1.4.6