Switching unique IDs to RFC4122 UUIDs
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
participants (1)
-
David Thompson