Classes | Public Types | Public Member Functions | Private Member Functions | Private Attributes

ACE_Utils::UUID_Generator Class Reference

#include <UUID.h>

Collaboration diagram for ACE_Utils::UUID_Generator:
Collaboration graph
[legend]

List of all members.

Classes

struct  UUID_State

Public Types

enum  { ACE_UUID_CLOCK_SEQ_MASK = 0x3FFF }
typedef ACE_UINT64 UUID_Time

Public Member Functions

 UUID_Generator (void)
 Default constructor.
 ~UUID_Generator ()
 Destructor.
void init (void)
void generate_UUID (UUID &, ACE_UINT16 version=0x0001, u_char variant=0x80)
UUIDgenerate_UUID (ACE_UINT16 version=0x0001, u_char variant=0x80)
ACE_SYNCH_MUTEX * lock (void)
void lock (ACE_SYNCH_MUTEX *lock, bool release_lock)
 Set a new locking strategy and return the old one.

Private Member Functions

void get_timestamp (UUID_Time &timestamp)
void get_timestamp_and_clocksequence (UUID_Time &timestamp, ACE_UINT16 &clockSequence)
void get_systemtime (UUID_Time &timeNow)

Private Attributes

UUID_Time time_last_
 The system time when that last uuid was generated.
UUID_State uuid_state_
 The UUID generator persistent state.
ACE_SYNCH_MUTEX * lock_
bool destroy_lock_
bool is_init_
 Initalization state of the generator.

Detailed Description

Definition at line 193 of file UUID.h.


Member Typedef Documentation

Type to represent UTC as a count of 100 nanosecond intervals since 00:00:00.00, 15 October 1582.

Definition at line 220 of file UUID.h.


Member Enumeration Documentation

anonymous enum
Enumerator:
ACE_UUID_CLOCK_SEQ_MASK 

Definition at line 197 of file UUID.h.


Constructor & Destructor Documentation

ACE_Utils::UUID_Generator::UUID_Generator ( void   ) 

Default constructor.

ACE_Utils::UUID_Generator::~UUID_Generator (  ) 

Destructor.


Member Function Documentation

void ACE_Utils::UUID_Generator::generate_UUID ( UUID ,
ACE_UINT16  version = 0x0001,
u_char  variant = 0x80 
)

Format timestamp, clockseq, and nodeID into an UUID of the specified version and variant. For generating UUID's with thread and process ids use variant=0xc0

UUID* ACE_Utils::UUID_Generator::generate_UUID ( ACE_UINT16  version = 0x0001,
u_char  variant = 0x80 
)

Format timestamp, clockseq, and nodeID into a VI UUID. For generating UUID's with thread and process ids use variant=0xc0

void ACE_Utils::UUID_Generator::get_systemtime ( UUID_Time timeNow  )  [private]

Obtain the system time in UTC as a count of 100 nanosecond intervals since 00:00:00.00, 15 October 1582 (the date of Gregorian reform to the Christian calendar).

void ACE_Utils::UUID_Generator::get_timestamp ( UUID_Time timestamp  )  [private]

Obtain a UUID timestamp. Compensate for the fact that the time obtained from getSystem time has a resolution less than 100ns.

void ACE_Utils::UUID_Generator::get_timestamp_and_clocksequence ( UUID_Time timestamp,
ACE_UINT16 &  clockSequence 
) [private]

Obtain a UUID timestamp and clock sequence. Compensate for the fact that the time obtained from getSystem time has a resolution less than 100ns.

void ACE_Utils::UUID_Generator::init ( void   ) 

Initialize the UUID generator

Deprecated:
This method may go away in some future release.
ACE_SYNCH_MUTEX* ACE_Utils::UUID_Generator::lock ( void   ) 

The locking strategy prevents multiple generators from accessing the UUID_state at the same time. Get the locking strategy.

void ACE_Utils::UUID_Generator::lock ( ACE_SYNCH_MUTEX *  lock,
bool  release_lock 
)

Set a new locking strategy and return the old one.


Member Data Documentation

Definition at line 262 of file UUID.h.

Initalization state of the generator.

Definition at line 265 of file UUID.h.

ACE_SYNCH_MUTEX* ACE_Utils::UUID_Generator::lock_ [private]

Definition at line 260 of file UUID.h.

The system time when that last uuid was generated.

Definition at line 231 of file UUID.h.

The UUID generator persistent state.

Definition at line 258 of file UUID.h.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines