
On Thu, Feb 26, 2015 at 15:17:22 +0100, Michal Privoznik wrote:
This API will be used in the future to call passed callback over each network object in the list. It's slightly different to it
s/to it/to it's/
virDomainObjListForEach counterpart, because virDomainObjList uses a hash table to store domain object, while virNetworkObjList uses an array. Therefore, iterating over the entries is slightly more complicated, as we want to allow the callback to remove the network object while still iterating.
Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- src/conf/network_conf.c | 22 ++++++++++++++++++++++ src/conf/network_conf.h | 6 ++++++ src/libvirt_private.syms | 1 + 3 files changed, 29 insertions(+)
...
diff --git a/src/conf/network_conf.h b/src/conf/network_conf.h index 16aea99..b9acc0e 100644 --- a/src/conf/network_conf.h +++ b/src/conf/network_conf.h @@ -445,6 +445,12 @@ int virNetworkObjListExport(virConnectPtr conn, virNetworkObjListFilter filter, unsigned int flags);
+typedef int (*virNetworkObjListIterator)(virNetworkObjPtr dom, + void *opaque);
Is there a reason you don't pass the object list as you want to allow deletion from the list itself? Users will have to pull it through the opaque argument.
+ +int virNetworkObjListForEach(virNetworkObjListPtr nets, + virNetworkObjListIterator callback, + void *opaque); /* for testing */ int virNetworkDefUpdateSection(virNetworkDefPtr def,
ACK, Peter