]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
network_conf: Introduce virNetworkObjListNumOfNetworks
authorMichal Privoznik <mprivozn@redhat.com>
Mon, 23 Feb 2015 16:46:01 +0000 (17:46 +0100)
committerMichal Privoznik <mprivozn@redhat.com>
Mon, 9 Mar 2015 13:03:30 +0000 (14:03 +0100)
An accessor following pattern laid out by virDomainObjList* APIs.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
src/conf/network_conf.c
src/conf/network_conf.h
src/libvirt_private.syms

index fdf59076ef20c8f13f8a68727ce20f9679322c0b..dea180a7127b4589ab5e6c4a6913654578fd283a 100644 (file)
@@ -4355,3 +4355,29 @@ virNetworkObjListGetNames(virNetworkObjListPtr nets,
         VIR_FREE(names[i]);
     return -1;
 }
+
+int
+virNetworkObjListNumOfNetworks(virNetworkObjListPtr nets,
+                               bool active,
+                               virNetworkObjListFilter filter,
+                               virConnectPtr conn)
+{
+    int count = 0;
+    size_t i;
+
+    for (i = 0; i < nets->count; i++) {
+        virNetworkObjPtr obj = nets->objs[i];
+        virNetworkObjLock(obj);
+        if (filter && !filter(conn, obj->def)) {
+            virNetworkObjUnlock(obj);
+            continue;
+        }
+
+        if ((active && virNetworkObjIsActive(obj)) ||
+            (!active && !virNetworkObjIsActive(obj)))
+            count++;
+        virNetworkObjUnlock(obj);
+    }
+
+    return count;
+}
index 598ddc2192581615cd872476493b1ff638e2bb32..bd9e3b44d6e05367f2487f71bbaf8ee8da3567df 100644 (file)
@@ -459,6 +459,11 @@ int virNetworkObjListGetNames(virNetworkObjListPtr nets,
                               virNetworkObjListFilter filter,
                               virConnectPtr conn);
 
+int virNetworkObjListNumOfNetworks(virNetworkObjListPtr nets,
+                                   bool active,
+                                   virNetworkObjListFilter filter,
+                                   virConnectPtr conn);
+
 /* for testing */
 int
 virNetworkDefUpdateSection(virNetworkDefPtr def,
index 203b888191868fa70ca3c186309f95793f1d4c3a..626b515fa2e84b1cb41f56ca651848cf58703a25 100644 (file)
@@ -572,6 +572,7 @@ virNetworkObjListExport;
 virNetworkObjListForEach;
 virNetworkObjListFree;
 virNetworkObjListGetNames;
+virNetworkObjListNumOfNetworks;
 virNetworkObjLock;
 virNetworkObjReplacePersistentDef;
 virNetworkObjSetDefTransient;