- Model Of
-
The ZUID class implements a non-standard UUID (Universally Unique ID). The ZUID is generated with an algorithm based on one available from the Open Software Foundation, but with the following differences:
- The Ethernet hardware address is never imbedded into the ZUID. Instead a "multi-cast" address is generated from random and unique information available on the machine using the RSA Data Security, Inc. MD5 Message-Digest Algorithm (MD5).
- The address is regenerated with each launch of the application and is not stored persistently.
- No effort is made to share the address across processes.
- Instead of using locks to keep processes from generating the same ID at the same time, some process specific information is used in the address.
- Performance is improved by only checking the system clock at the clocks resolution and not throttling to the clock but rather allowing time to "race ahead" and re-synchronize with the clock when it has caught up.
These changes where made to improve performance and avoid privacy issues of having a hardware specific address imbedded in documents. These changes increase the probability of generating colliding IDs but the probability is low enough to suffice non-mission critical needs.
The UUID code in this file has been significantly altered (as described above) and should not be used where a true UUID is needed. The MD5 code has only been altered for coding standards. The algorithm should still function as originally intended.
- See also
-
Definition at line 88 of file zuid.hpp.