Originally posted in part as an RFC: https://www.redhat.com/archives/libvir-list/2017-April/msg00321.html Obviously not a 3.4.0 discussion, but I'm trying to get ahead of the curve for 3.5.0 and posting this now as I'm "close enough" to at least convert secrets, nwfilters, nodedevs, and interfaces to use a more common object methodolgy to add/store, fetch/find, search, list, etc. the objects in something other than a linear forward linked list. Converting the storage pool, storage volume, and network is taking longer than hoped since there are so many patches to get from pointA to pointB. So I'll focus on the 4 and work through getting the complete model published/adopted as those have been in my branches for a while now. Still these patches get as far as the creation of the common object which is a start. The first 4 patches are essentially setup. Patch 5 is new and covers the need for nwfilters (at least temporarily until self locking list mgmt is possible). Patches 6-7 were more or less what patch 7-8 were in the RFC. Patches 8-9 are essentially the driver/common object extension. Patches 5-6 from the RFC still exist in my branches and would be the next logical step. It was a conscious decision to just use the "default" string comparison for hash table key. That key could be a UUID, but since the UUID can easily be converted from unsigned to signed - I believe it would be far simpler to keep that mechanism rather than complexity introduced by having "different" key search algorithms when the key isn't a char *. John Ferlan (9): util: Formatting cleanups to virobject API util: Introduce virObjectGetLockableObj util: Generate a common internal only error print util: Add magic_marker for all virObjects util: Introduce virObjectLockableRecursiveNew util: Introduce virObjectPoolableHashElement util: Add virObjectPoolableHashElementGet*Key util: Introduce virObjectPoolableDef util: Add virObjectPoolableDef* accessor API's src/libvirt_private.syms | 12 ++ src/util/virobject.c | 492 +++++++++++++++++++++++++++++++++++++++++++---- src/util/virobject.h | 130 +++++++++++-- 3 files changed, 580 insertions(+), 54 deletions(-) -- 2.9.4 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list