static void gvir_domain_snapshot_finalize(GObject *object) { GVirDomainSnapshot *snapshot = GVIR_DOMAIN_SNAPSHOT(object); GVirDomainSnapshotPrivate *priv = snapshot->priv; virDomainSnapshotFree(priv->handle); G_OBJECT_CLASS(gvir_domain_snapshot_parent_class)->finalize(object); }
void SnapshotActionDialog::addSnapshotChild(int row, const QModelIndex &parent, char *name) { // flags: extra flags; not used yet, so callers should always pass 0 virDomainSnapshotPtr snapShot = virDomainSnapshotLookupByName(domain, name, 0); char *xmlDesc = virDomainSnapshotGetXMLDesc(snapShot, 0); QString _desc; QString _data(" -- "); if ( NULL!=xmlDesc ) { QDomDocument doc; doc.setContent(QString(xmlDesc)); free(xmlDesc); QDomElement _el = doc .firstChildElement("domainsnapshot") .firstChildElement("creationTime"); if ( !_el.isNull() ) { _data.clear(); _data.append( QDateTime::fromMSecsSinceEpoch( _el.text().toULongLong()*1000) .toString("yyyy-MM-dd_HH:mm:ss")); }; _el = doc .firstChildElement("domainsnapshot") .firstChildElement("description"); if ( !_el.isNull() ) { _desc.clear(); _desc.append(_el.text()); }; }; // flags: extra flags; not used yet, so callers should always pass 0 int current = virDomainSnapshotIsCurrent(snapShot, 0); if ( NULL!=snapShot ) { model->insertRow(row, parent); model->setData(model->index(row, 0, parent), name, Qt::DisplayRole); model->setData(model->index(row, 0, parent), (current>0), Qt::DecorationRole); model->setData(model->index(row, 0, parent), _desc, Qt::ToolTipRole); model->setData(model->index(row, 1, parent), _data, Qt::DisplayRole); // By default, this command covers only direct children; use flag=0 int namesLen = virDomainSnapshotNumChildren(snapShot, 0); if ( namesLen>0 ) { char *names; int ret = virDomainSnapshotListChildrenNames( snapShot, &names, namesLen, 0); if ( ret>0 ) { for (int i = 0; i<ret; i++) { addSnapshotChild(i, model->index(row, 0, parent), (&names)[i]); }; }; }; virDomainSnapshotFree(snapShot); }; }
static void gvir_domain_snapshot_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { GVirDomainSnapshot *snapshot = GVIR_DOMAIN_SNAPSHOT(object); GVirDomainSnapshotPrivate *priv = snapshot->priv; switch (prop_id) { case PROP_HANDLE: if (priv->handle) virDomainSnapshotFree(priv->handle); priv->handle = g_value_dup_boxed(value); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); } }
static void gvir_domain_snapshot_handle_free(GVirDomainSnapshotHandle *src) { virDomainSnapshotFree((virDomainSnapshotPtr)src); }