[cgma-dev] Switching unique IDs to RFC4122 UUIDs

David Thompson david.thompson at kitware.com
Fri Sep 20 16:08:45 CDT 2013


Hi all,

I am looking into switching CGMA's IDs from ints (4-8 bytes, signed) to RFC4122-style UUIDs (16 bytes, unsigned) so that cross-references across multiple large models are much less likely to have duplicate IDs.

One problem I am having is that CGMA performs math (addition/subtraction) on UUIDs in places. For instance, SubEntitySet::renumerate, CAEntityId::actuate, and PartitionEngine::restore_from_attrib all do some kind of math (increment/decrement) on UIDs. This is not supported by any UUID implementation I'm aware of.

Also, CGMA compares/swaps CAUniqueId and TDUniqueId values, which I thought lived in different "namespaces" (sequential integers for CAUniqueId and random integers for TDUniqueId). Was I wrong to think this? If not, why does CAEntityId add the same id_inc to both its own ID and its merge-partner's (which appears to be obtained in some places using TDUniqueId::find_td_unique_id)?

	Thanks,
	David


More information about the cgma-dev mailing list