const gchar *gvir_config_domain_device_get_alias(GVirConfigDomainDevice *dev) { g_return_val_if_fail(GVIR_CONFIG_IS_DOMAIN_DEVICE(dev), NULL); return gvir_config_object_get_attribute(GVIR_CONFIG_OBJECT(dev), "alias", "name"); }
/** * gvir_config_domain_set_devices: * @domain: a #GVirConfigDomain * @devices: (in) (element-type LibvirtGConfig.DomainDevice): */ void gvir_config_domain_set_devices(GVirConfigDomain *domain, GList *devices) { GVirConfigObject *devices_node; GList *it; g_return_if_fail(GVIR_CONFIG_IS_DOMAIN(domain)); if (devices == NULL) { gvir_config_object_delete_children(GVIR_CONFIG_OBJECT(domain), "devices", NULL); return; } devices_node = gvir_config_object_new(GVIR_CONFIG_TYPE_OBJECT, "devices", NULL); for (it = devices; it != NULL; it = it->next) { if (!GVIR_CONFIG_IS_DOMAIN_DEVICE(it->data)) { g_warn_if_reached(); continue; } gvir_config_object_attach_add(devices_node, GVIR_CONFIG_OBJECT(it->data)); } gvir_config_object_attach_replace(GVIR_CONFIG_OBJECT(domain), "devices", devices_node); g_object_unref(G_OBJECT(devices_node)); }
void gvir_config_domain_add_device(GVirConfigDomain *domain, GVirConfigDomainDevice *device) { GVirConfigObject *devices_node; g_return_if_fail(GVIR_CONFIG_IS_DOMAIN(domain)); g_return_if_fail(GVIR_CONFIG_IS_DOMAIN_DEVICE(device)); devices_node = gvir_config_object_add_child(GVIR_CONFIG_OBJECT(domain), "devices"); gvir_config_object_attach_add(devices_node, GVIR_CONFIG_OBJECT(device)); g_object_unref(G_OBJECT(devices_node)); }
G_GNUC_INTERNAL GVirDomainDevice *gvir_domain_device_new(GVirDomain *domain, GVirConfigDomainDevice *config) { GType type; g_return_val_if_fail(GVIR_IS_DOMAIN(domain), NULL); g_return_val_if_fail(GVIR_CONFIG_IS_DOMAIN_DEVICE(config), NULL); if (GVIR_CONFIG_IS_DOMAIN_DISK(config)) { type = GVIR_TYPE_DOMAIN_DISK; } else if (GVIR_CONFIG_IS_DOMAIN_INTERFACE(config)) { type = GVIR_TYPE_DOMAIN_INTERFACE; } else { g_debug("Unknown device type: %s", G_OBJECT_TYPE_NAME(config)); return NULL; } return GVIR_DOMAIN_DEVICE(g_object_new(type, "config", config, "domain", domain, NULL)); }