Convert public datatypes to inherit from virObject

This converts the following public API datatypes to use the
virObject infrastructure:

  virConnectPtr
  virDomainPtr
  virDomainSnapshotPtr
  virInterfacePtr
  virNetworkPtr
  virNodeDevicePtr
  virNWFilterPtr
  virSecretPtr
  virStreamPtr
  virStorageVolPtr
  virStoragePoolPtr

The code is significantly simplified, since the mutex in the
virConnectPtr object now only needs to be held when accessing
the per-connection virError object instance. All other operations
are completely lock free.

* src/datatypes.c, src/datatypes.h, src/libvirt.c: Convert
  public datatypes to use virObject
* src/conf/domain_event.c, src/phyp/phyp_driver.c,
  src/qemu/qemu_command.c, src/qemu/qemu_migration.c,
  src/qemu/qemu_process.c, src/storage/storage_driver.c,
  src/vbox/vbox_tmpl.c, src/xen/xend_internal.c,
  tests/qemuxml2argvtest.c, tests/qemuxmlnstest.c,
  tests/sexpr2xmltest.c, tests/xmconfigtest.c: Convert
  to use virObjectUnref/virObjectRef

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
This commit is contained in:
Daniel P. Berrange
2012-07-31 17:55:36 +01:00
parent 784a99f794
commit 46ec5f85c8
18 changed files with 444 additions and 1107 deletions

View File

@@ -40,23 +40,12 @@ fakeSecretLookupByUsage(virConnectPtr conn,
int usageType ATTRIBUTE_UNUSED,
const char *usageID)
{
virSecretPtr ret = NULL;
int err;
unsigned char uuid[VIR_UUID_BUFLEN];
if (STRNEQ(usageID, "mycluster_myname"))
return NULL;
err = VIR_ALLOC(ret);
if (err < 0)
return NULL;
ret->magic = VIR_SECRET_MAGIC;
ret->refs = 1;
ret->usageID = strdup(usageID);
if (!ret->usageID) {
VIR_FREE(ret);
return NULL;
}
ret->conn = conn;
conn->refs++;
return ret;
virUUIDGenerate(uuid);
return virGetSecret(conn, uuid, usageType, usageID);
}
static int
@@ -239,7 +228,7 @@ out:
VIR_FREE(actualargv);
virCommandFree(cmd);
virDomainDefFree(vmdef);
virUnrefConnect(conn);
virObjectUnref(conn);
return ret;
}

View File

@@ -157,7 +157,7 @@ static int testCompareXMLToArgvFiles(const char *xml,
VIR_FREE(actualargv);
virCommandFree(cmd);
virDomainDefFree(vmdef);
virUnrefConnect(conn);
virObjectUnref(conn);
return ret;
}

View File

@@ -71,8 +71,7 @@ testCompareFiles(const char *xml, const char *sexpr, int xendConfigVersion)
VIR_FREE(sexprData);
VIR_FREE(gotxml);
virDomainDefFree(def);
if (conn)
virUnrefConnect(conn);
virObjectUnref(conn);
return ret;
}

View File

@@ -93,7 +93,7 @@ testCompareParseXML(const char *xmcfg, const char *xml, int xendConfigVersion)
if (conf)
virConfFree(conf);
virDomainDefFree(def);
virUnrefConnect(conn);
virObjectUnref(conn);
return ret;
}
@@ -147,7 +147,7 @@ testCompareFormatXML(const char *xmcfg, const char *xml, int xendConfigVersion)
VIR_FREE(xmcfgData);
VIR_FREE(gotxml);
virDomainDefFree(def);
virUnrefConnect(conn);
virObjectUnref(conn);
return ret;
}