mirror of
https://git.proxmox.com/git/fwupd
synced 2025-08-08 10:54:41 +00:00
Add fwupd_device_incorporate()
This allows us to copy properties from a donor object.
This commit is contained in:
parent
c43a9e9024
commit
e0cd6e0667
@ -16,6 +16,8 @@ G_BEGIN_DECLS
|
|||||||
|
|
||||||
FwupdDevice *fwupd_device_from_variant (GVariant *data);
|
FwupdDevice *fwupd_device_from_variant (GVariant *data);
|
||||||
GVariant *fwupd_device_to_variant (FwupdDevice *device);
|
GVariant *fwupd_device_to_variant (FwupdDevice *device);
|
||||||
|
void fwupd_device_incorporate (FwupdDevice *self,
|
||||||
|
FwupdDevice *donor);
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
|
@ -858,6 +858,73 @@ fwupd_device_set_modified (FwupdDevice *device, guint64 modified)
|
|||||||
priv->modified = modified;
|
priv->modified = modified;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* fwupd_device_incorporate:
|
||||||
|
* @self: A #FwupdDevice
|
||||||
|
* @donor: Another #FwupdDevice
|
||||||
|
*
|
||||||
|
* Copy all properties from the donor object if they have not already been set.
|
||||||
|
*
|
||||||
|
* Since: 1.1.0
|
||||||
|
**/
|
||||||
|
void
|
||||||
|
fwupd_device_incorporate (FwupdDevice *self, FwupdDevice *donor)
|
||||||
|
{
|
||||||
|
FwupdDevicePrivate *priv = GET_PRIVATE (self);
|
||||||
|
FwupdDevicePrivate *priv_donor = GET_PRIVATE (donor);
|
||||||
|
|
||||||
|
if (priv->flags == 0)
|
||||||
|
fwupd_device_add_flag (self, priv_donor->flags);
|
||||||
|
if (priv->created == 0)
|
||||||
|
fwupd_device_set_created (self, priv_donor->created);
|
||||||
|
if (priv->modified == 0)
|
||||||
|
fwupd_device_set_modified (self, priv_donor->modified);
|
||||||
|
if (priv->flashes_left == 0)
|
||||||
|
fwupd_device_set_flashes_left (self, priv_donor->flashes_left);
|
||||||
|
if (priv->update_state == 0)
|
||||||
|
fwupd_device_set_update_state (self, priv_donor->update_state);
|
||||||
|
if (priv->description == NULL)
|
||||||
|
fwupd_device_set_description (self, priv_donor->description);
|
||||||
|
if (priv->id == NULL)
|
||||||
|
fwupd_device_set_id (self, priv_donor->id);
|
||||||
|
if (priv->parent_id == NULL)
|
||||||
|
fwupd_device_set_parent_id (self, priv_donor->parent_id);
|
||||||
|
if (priv->name == NULL)
|
||||||
|
fwupd_device_set_name (self, priv_donor->name);
|
||||||
|
if (priv->summary == NULL)
|
||||||
|
fwupd_device_set_summary (self, priv_donor->summary);
|
||||||
|
if (priv->vendor == NULL)
|
||||||
|
fwupd_device_set_vendor (self, priv_donor->vendor);
|
||||||
|
if (priv->vendor_id == NULL)
|
||||||
|
fwupd_device_set_vendor_id (self, priv_donor->vendor_id);
|
||||||
|
if (priv->plugin == NULL)
|
||||||
|
fwupd_device_set_plugin (self, priv_donor->plugin);
|
||||||
|
if (priv->update_error == NULL)
|
||||||
|
fwupd_device_set_update_error (self, priv_donor->update_error);
|
||||||
|
if (priv->version == NULL)
|
||||||
|
fwupd_device_set_version (self, priv_donor->version);
|
||||||
|
if (priv->version_lowest == NULL)
|
||||||
|
fwupd_device_set_version_lowest (self, priv_donor->version_lowest);
|
||||||
|
if (priv->version_bootloader == NULL)
|
||||||
|
fwupd_device_set_version_bootloader (self, priv_donor->version_bootloader);
|
||||||
|
for (guint i = 0; i < priv_donor->guids->len; i++) {
|
||||||
|
const gchar *tmp = g_ptr_array_index (priv_donor->guids, i);
|
||||||
|
fwupd_device_add_guid (self, tmp);
|
||||||
|
}
|
||||||
|
for (guint i = 0; i < priv_donor->icons->len; i++) {
|
||||||
|
const gchar *tmp = g_ptr_array_index (priv_donor->icons, i);
|
||||||
|
fwupd_device_add_icon (self, tmp);
|
||||||
|
}
|
||||||
|
for (guint i = 0; i < priv_donor->checksums->len; i++) {
|
||||||
|
const gchar *tmp = g_ptr_array_index (priv_donor->checksums, i);
|
||||||
|
fwupd_device_add_checksum (self, tmp);
|
||||||
|
}
|
||||||
|
for (guint i = 0; i < priv_donor->releases->len; i++) {
|
||||||
|
FwupdRelease *tmp = g_ptr_array_index (priv_donor->releases, i);
|
||||||
|
fwupd_device_add_release (self, tmp);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* fwupd_device_to_variant:
|
* fwupd_device_to_variant:
|
||||||
* @device: A #FwupdDevice
|
* @device: A #FwupdDevice
|
||||||
|
@ -252,3 +252,9 @@ LIBFWUPD_1.0.8 {
|
|||||||
fwupd_device_set_parent_id;
|
fwupd_device_set_parent_id;
|
||||||
local: *;
|
local: *;
|
||||||
} LIBFWUPD_1.0.7;
|
} LIBFWUPD_1.0.7;
|
||||||
|
|
||||||
|
LIBFWUPD_1.1.0 {
|
||||||
|
global:
|
||||||
|
fwupd_device_incorporate;
|
||||||
|
local: *;
|
||||||
|
} LIBFWUPD_1.0.8;
|
||||||
|
Loading…
Reference in New Issue
Block a user