fwupd/libfwupd/fwupd-client.h
Richard Hughes 6de10e118c Allow downloading firmware from IPFS
Only a small amount of the firmware on the LVFS will be available. The user
can use --ipfs on the command line for testing, or change the system-wide
default in /etc/fwupd/daemon.conf.

The IPFS daemon and command line client will need to be installed manually.
2021-02-01 19:33:31 +00:00

439 lines
16 KiB
C

/*
* Copyright (C) 2016 Richard Hughes <richard@hughsie.com>
*
* SPDX-License-Identifier: LGPL-2.1+
*/
#pragma once
#include <glib-object.h>
#include <gio/gio.h>
#include "fwupd-enums.h"
#include "fwupd-device.h"
#include "fwupd-plugin.h"
#include "fwupd-remote.h"
G_BEGIN_DECLS
#define FWUPD_TYPE_CLIENT (fwupd_client_get_type ())
G_DECLARE_DERIVABLE_TYPE (FwupdClient, fwupd_client, FWUPD, CLIENT, GObject)
struct _FwupdClientClass
{
GObjectClass parent_class;
void (*changed) (FwupdClient *client);
void (*status_changed) (FwupdClient *client,
FwupdStatus status);
void (*device_added) (FwupdClient *client,
FwupdDevice *result);
void (*device_removed) (FwupdClient *client,
FwupdDevice *result);
void (*device_changed) (FwupdClient *client,
FwupdDevice *result);
/*< private >*/
void (*_fwupd_reserved1) (void);
void (*_fwupd_reserved2) (void);
void (*_fwupd_reserved3) (void);
void (*_fwupd_reserved4) (void);
void (*_fwupd_reserved5) (void);
void (*_fwupd_reserved6) (void);
void (*_fwupd_reserved7) (void);
};
/**
* FwupdClientDownloadFlags:
* @FWUPD_CLIENT_DOWNLOAD_FLAG_NONE: No flags set
* @FWUPD_CLIENT_DOWNLOAD_FLAG_ONLY_IPFS: Only use IPFS when downloading URIs
*
* The options to use for downloading.
**/
typedef enum {
FWUPD_CLIENT_DOWNLOAD_FLAG_NONE = 0, /* Since: 1.4.5 */
FWUPD_CLIENT_DOWNLOAD_FLAG_ONLY_IPFS = 1 << 0, /* Since: 1.5.6 */
/*< private >*/
FWUPD_CLIENT_DOWNLOAD_FLAG_LAST
} FwupdClientDownloadFlags;
/**
* FwupdClientUploadFlags:
* @FWUPD_CLIENT_UPLOAD_FLAG_NONE: No flags set
* @FWUPD_CLIENT_UPLOAD_FLAG_ALWAYS_MULTIPART: Always use multipart/form-data
*
* The options to use for uploading.
**/
typedef enum {
FWUPD_CLIENT_UPLOAD_FLAG_NONE = 0, /* Since: 1.4.5 */
FWUPD_CLIENT_UPLOAD_FLAG_ALWAYS_MULTIPART = 1 << 0, /* Since: 1.4.5 */
/*< private >*/
FWUPD_CLIENT_UPLOAD_FLAG_LAST
} FwupdClientUploadFlags;
FwupdClient *fwupd_client_new (void);
GMainContext *fwupd_client_get_main_context (FwupdClient *self);
void fwupd_client_set_main_context (FwupdClient *self,
GMainContext *main_ctx);
void fwupd_client_connect_async (FwupdClient *self,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer callback_data);
gboolean fwupd_client_connect_finish (FwupdClient *self,
GAsyncResult *res,
GError **error)
G_GNUC_WARN_UNUSED_RESULT;
void fwupd_client_get_devices_async (FwupdClient *self,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer callback_data);
GPtrArray *fwupd_client_get_devices_finish (FwupdClient *self,
GAsyncResult *res,
GError **error)
G_GNUC_WARN_UNUSED_RESULT;
void fwupd_client_get_plugins_async (FwupdClient *self,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer callback_data);
GPtrArray *fwupd_client_get_plugins_finish (FwupdClient *self,
GAsyncResult *res,
GError **error)
G_GNUC_WARN_UNUSED_RESULT;
void fwupd_client_get_history_async (FwupdClient *self,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer callback_data);
GPtrArray *fwupd_client_get_history_finish (FwupdClient *self,
GAsyncResult *res,
GError **error)
G_GNUC_WARN_UNUSED_RESULT;
void fwupd_client_get_releases_async (FwupdClient *self,
const gchar *device_id,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer callback_data);
GPtrArray *fwupd_client_get_releases_finish (FwupdClient *self,
GAsyncResult *res,
GError **error)
G_GNUC_WARN_UNUSED_RESULT;
void fwupd_client_get_downgrades_async (FwupdClient *self,
const gchar *device_id,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer callback_data);
GPtrArray *fwupd_client_get_downgrades_finish (FwupdClient *self,
GAsyncResult *res,
GError **error)
G_GNUC_WARN_UNUSED_RESULT;
void fwupd_client_get_upgrades_async (FwupdClient *self,
const gchar *device_id,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer callback_data);
GPtrArray *fwupd_client_get_upgrades_finish (FwupdClient *self,
GAsyncResult *res,
GError **error)
G_GNUC_WARN_UNUSED_RESULT;
void fwupd_client_get_details_bytes_async (FwupdClient *self,
GBytes *bytes,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer callback_data);
GPtrArray *fwupd_client_get_details_bytes_finish (FwupdClient *self,
GAsyncResult *res,
GError **error)
G_GNUC_WARN_UNUSED_RESULT;
void fwupd_client_verify_async (FwupdClient *self,
const gchar *device_id,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer callback_data);
gboolean fwupd_client_verify_finish (FwupdClient *self,
GAsyncResult *res,
GError **error)
G_GNUC_WARN_UNUSED_RESULT;
void fwupd_client_verify_update_async (FwupdClient *self,
const gchar *device_id,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer callback_data);
gboolean fwupd_client_verify_update_finish (FwupdClient *self,
GAsyncResult *res,
GError **error)
G_GNUC_WARN_UNUSED_RESULT;
void fwupd_client_unlock_async (FwupdClient *self,
const gchar *device_id,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer callback_data);
gboolean fwupd_client_unlock_finish (FwupdClient *self,
GAsyncResult *res,
GError **error)
G_GNUC_WARN_UNUSED_RESULT;
void fwupd_client_modify_config_async (FwupdClient *self,
const gchar *key,
const gchar *value,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer callback_data);
gboolean fwupd_client_modify_config_finish (FwupdClient *self,
GAsyncResult *res,
GError **error)
G_GNUC_WARN_UNUSED_RESULT;
void fwupd_client_activate_async (FwupdClient *self,
const gchar *device_id,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer callback_data);
gboolean fwupd_client_activate_finish (FwupdClient *self,
GAsyncResult *res,
GError **error)
G_GNUC_WARN_UNUSED_RESULT;
void fwupd_client_clear_results_async (FwupdClient *self,
const gchar *device_id,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer callback_data);
gboolean fwupd_client_clear_results_finish (FwupdClient *self,
GAsyncResult *res,
GError **error)
G_GNUC_WARN_UNUSED_RESULT;
void fwupd_client_get_results_async (FwupdClient *self,
const gchar *device_id,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer callback_data);
FwupdDevice *fwupd_client_get_results_finish (FwupdClient *self,
GAsyncResult *res,
GError **error)
G_GNUC_WARN_UNUSED_RESULT;
void fwupd_client_get_host_security_attrs_async(FwupdClient *self,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer callback_data);
GPtrArray *fwupd_client_get_host_security_attrs_finish(FwupdClient *self,
GAsyncResult *res,
GError **error)
G_GNUC_WARN_UNUSED_RESULT;
void fwupd_client_get_device_by_id_async (FwupdClient *self,
const gchar *device_id,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer callback_data);
FwupdDevice *fwupd_client_get_device_by_id_finish (FwupdClient *self,
GAsyncResult *res,
GError **error)
G_GNUC_WARN_UNUSED_RESULT;
void fwupd_client_get_devices_by_guid_async (FwupdClient *self,
const gchar *guid,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer callback_data);
GPtrArray *fwupd_client_get_devices_by_guid_finish (FwupdClient *self,
GAsyncResult *res,
GError **error)
G_GNUC_WARN_UNUSED_RESULT;
void fwupd_client_install_async (FwupdClient *self,
const gchar *device_id,
const gchar *filename,
FwupdInstallFlags install_flags,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer callback_data);
gboolean fwupd_client_install_finish (FwupdClient *self,
GAsyncResult *res,
GError **error)
G_GNUC_WARN_UNUSED_RESULT;
void fwupd_client_install_bytes_async (FwupdClient *self,
const gchar *device_id,
GBytes *bytes,
FwupdInstallFlags install_flags,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer callback_data);
gboolean fwupd_client_install_bytes_finish (FwupdClient *self,
GAsyncResult *res,
GError **error)
G_GNUC_WARN_UNUSED_RESULT;
void fwupd_client_install_release_async (FwupdClient *self,
FwupdDevice *device,
FwupdRelease *release,
FwupdInstallFlags install_flags,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer callback_data)
G_DEPRECATED_FOR(fwupd_client_install_release2_async);
void fwupd_client_install_release2_async (FwupdClient *self,
FwupdDevice *device,
FwupdRelease *release,
FwupdInstallFlags install_flags,
FwupdClientDownloadFlags download_flags,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer callback_data);
gboolean fwupd_client_install_release_finish (FwupdClient *self,
GAsyncResult *res,
GError **error)
G_GNUC_WARN_UNUSED_RESULT;
void fwupd_client_update_metadata_bytes_async (FwupdClient *self,
const gchar *remote_id,
GBytes *metadata,
GBytes *signature,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer callback_data);
gboolean fwupd_client_update_metadata_bytes_finish (FwupdClient *self,
GAsyncResult *res,
GError **error)
G_GNUC_WARN_UNUSED_RESULT;
void fwupd_client_refresh_remote_async (FwupdClient *self,
FwupdRemote *remote,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer callback_data);
gboolean fwupd_client_refresh_remote_finish (FwupdClient *self,
GAsyncResult *res,
GError **error)
G_GNUC_WARN_UNUSED_RESULT;
void fwupd_client_modify_remote_async (FwupdClient *self,
const gchar *remote_id,
const gchar *key,
const gchar *value,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer callback_data);
gboolean fwupd_client_modify_remote_finish (FwupdClient *self,
GAsyncResult *res,
GError **error)
G_GNUC_WARN_UNUSED_RESULT;
void fwupd_client_modify_device_async (FwupdClient *self,
const gchar *device_id,
const gchar *key,
const gchar *value,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer callback_data);
gboolean fwupd_client_modify_device_finish (FwupdClient *self,
GAsyncResult *res,
GError **error)
G_GNUC_WARN_UNUSED_RESULT;
void fwupd_client_get_report_metadata_async (FwupdClient *self,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer callback_data);
GHashTable *fwupd_client_get_report_metadata_finish(FwupdClient *self,
GAsyncResult *res,
GError **error)
G_GNUC_WARN_UNUSED_RESULT;
FwupdStatus fwupd_client_get_status (FwupdClient *self);
gboolean fwupd_client_get_tainted (FwupdClient *self);
gboolean fwupd_client_get_daemon_interactive (FwupdClient *self);
guint fwupd_client_get_percentage (FwupdClient *self);
const gchar *fwupd_client_get_daemon_version (FwupdClient *self);
const gchar *fwupd_client_get_host_product (FwupdClient *self);
const gchar *fwupd_client_get_host_machine_id (FwupdClient *self);
const gchar *fwupd_client_get_host_security_id (FwupdClient *self);
void fwupd_client_get_remotes_async (FwupdClient *self,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer callback_data);
GPtrArray *fwupd_client_get_remotes_finish (FwupdClient *self,
GAsyncResult *res,
GError **error)
G_GNUC_WARN_UNUSED_RESULT;
void fwupd_client_get_remote_by_id_async (FwupdClient *self,
const gchar *remote_id,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer callback_data);
FwupdRemote *fwupd_client_get_remote_by_id_finish (FwupdClient *self,
GAsyncResult *res,
GError **error)
G_GNUC_WARN_UNUSED_RESULT;
void fwupd_client_get_approved_firmware_async(FwupdClient *self,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer callback_data);
GPtrArray *fwupd_client_get_approved_firmware_finish(FwupdClient *self,
GAsyncResult *res,
GError **error)
G_GNUC_WARN_UNUSED_RESULT;
void fwupd_client_set_approved_firmware_async (FwupdClient *self,
GPtrArray *checksums,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer callback_data);
gboolean fwupd_client_set_approved_firmware_finish (FwupdClient *self,
GAsyncResult *res,
GError **error)
G_GNUC_WARN_UNUSED_RESULT;
void fwupd_client_get_blocked_firmware_async(FwupdClient *self,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer callback_data);
GPtrArray *fwupd_client_get_blocked_firmware_finish(FwupdClient *self,
GAsyncResult *res,
GError **error)
G_GNUC_WARN_UNUSED_RESULT;
void fwupd_client_set_blocked_firmware_async (FwupdClient *self,
GPtrArray *checksums,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer callback_data);
gboolean fwupd_client_set_blocked_firmware_finish (FwupdClient *self,
GAsyncResult *res,
GError **error)
G_GNUC_WARN_UNUSED_RESULT;
void fwupd_client_self_sign_async (FwupdClient *self,
const gchar *value,
FwupdSelfSignFlags flags,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer callback_data);
gchar *fwupd_client_self_sign_finish (FwupdClient *self,
GAsyncResult *res,
GError **error)
G_GNUC_WARN_UNUSED_RESULT;
void fwupd_client_set_feature_flags_async (FwupdClient *self,
FwupdFeatureFlags feature_flags,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer callback_data);
gboolean fwupd_client_set_feature_flags_finish (FwupdClient *self,
GAsyncResult *res,
GError **error)
G_GNUC_WARN_UNUSED_RESULT;
const gchar *fwupd_client_get_user_agent (FwupdClient *self);
void fwupd_client_set_user_agent (FwupdClient *self,
const gchar *user_agent);
void fwupd_client_set_user_agent_for_package(FwupdClient *self,
const gchar *package_name,
const gchar *package_version);
void fwupd_client_download_bytes_async (FwupdClient *self,
const gchar *url,
FwupdClientDownloadFlags flags,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer callback_data);
GBytes *fwupd_client_download_bytes_finish (FwupdClient *self,
GAsyncResult *res,
GError **error)
G_GNUC_WARN_UNUSED_RESULT;
void fwupd_client_upload_bytes_async (FwupdClient *self,
const gchar *url,
const gchar *payload,
const gchar *signature,
FwupdClientUploadFlags flags,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer callback_data);
GBytes *fwupd_client_upload_bytes_finish (FwupdClient *self,
GAsyncResult *res,
GError **error)
G_GNUC_WARN_UNUSED_RESULT;
gboolean fwupd_client_ensure_networking (FwupdClient *self,
GError **error)
G_GNUC_WARN_UNUSED_RESULT;
G_END_DECLS