[gnome-software/wip/async-plugin-repo-funcs: 4/32] gs-plugin: Add virtual functions for repository management
- From: Milan Crha <mcrha src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-software/wip/async-plugin-repo-funcs: 4/32] gs-plugin: Add virtual functions for repository management
- Date: Tue, 14 Jun 2022 19:32:27 +0000 (UTC)
commit f53ca33769261f8fc22951319063636e375ff6a9
Author: Milan Crha <mcrha redhat com>
Date: Mon Jun 13 18:41:05 2022 +0200
gs-plugin: Add virtual functions for repository management
lib/gs-plugin-types.h | 22 +++++++++++++++++++++
lib/gs-plugin.h | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 75 insertions(+)
---
diff --git a/lib/gs-plugin-types.h b/lib/gs-plugin-types.h
index 81bcbcd00..476f3233f 100644
--- a/lib/gs-plugin-types.h
+++ b/lib/gs-plugin-types.h
@@ -212,6 +212,28 @@ typedef enum {
GS_PLUGIN_LIST_DISTRO_UPGRADES_FLAGS_INTERACTIVE = 1 << 0,
} GsPluginListDistroUpgradesFlags;
+/**
+ * GsPluginManageRepositoryFlags:
+ * @GS_PLUGIN_MANAGE_REPOSITORY_FLAGS_NONE: No flags set.
+ * @GS_PLUGIN_MANAGE_REPOSITORY_FLAGS_INTERACTIVE: User initiated the job.
+ * @GS_PLUGIN_MANAGE_REPOSITORY_FLAGS_INSTALL: Install the repository.
+ * @GS_PLUGIN_MANAGE_REPOSITORY_FLAGS_REMOVE: Remove the repository.
+ * @GS_PLUGIN_MANAGE_REPOSITORY_FLAGS_ENABLE: Enable the repository.
+ * @GS_PLUGIN_MANAGE_REPOSITORY_FLAGS_DISABLE: Disable the repository.
+ *
+ * Flags for an operation on a repository.
+ *
+ * Since: 42
+ */
+typedef enum {
+ GS_PLUGIN_MANAGE_REPOSITORY_FLAGS_NONE = 0,
+ GS_PLUGIN_MANAGE_REPOSITORY_FLAGS_INTERACTIVE = 1 << 0,
+ GS_PLUGIN_MANAGE_REPOSITORY_FLAGS_INSTALL = 1 << 1,
+ GS_PLUGIN_MANAGE_REPOSITORY_FLAGS_REMOVE = 1 << 2,
+ GS_PLUGIN_MANAGE_REPOSITORY_FLAGS_ENABLE = 1 << 3,
+ GS_PLUGIN_MANAGE_REPOSITORY_FLAGS_DISABLE = 1 << 4,
+} GsPluginManageRepositoryFlags;
+
/**
* GsPluginRule:
* @GS_PLUGIN_RULE_CONFLICTS: The plugin conflicts with another
diff --git a/lib/gs-plugin.h b/lib/gs-plugin.h
index 709819799..15bfa6194 100644
--- a/lib/gs-plugin.h
+++ b/lib/gs-plugin.h
@@ -63,6 +63,22 @@ G_DECLARE_DERIVABLE_TYPE (GsPlugin, gs_plugin, GS, PLUGIN, GObject)
* @list_distro_upgrades_finish: (nullable): Finish method for
* @list_distro_upgrades_async. Must be implemented if
* @list_distro_upgrades_async is implemented.
+ * @install_repository_async: (nullable): Install repository.
+ * @install_repository_finish: (nullable): Finish method for
+ * @install_repository_async. Must be implemented if
+ * @install_repository_async is implemented.
+ * @remove_repository_async: (nullable): Remove repository.
+ * @remove_repository_finish: (nullable): Finish method for
+ * @remove_repository_async. Must be implemented if
+ * @remove_repository_async is implemented.
+ * @enable_repository_async: (nullable): Enable repository.
+ * @enable_repository_finish: (nullable): Finish method for
+ * @enable_repository_async. Must be implemented if
+ * @enable_repository_async is implemented.
+ * @disable_repository_async: (nullable): Disable repository.
+ * @disable_repository_finish: (nullable): Finish method for
+ * @disable_repository_async. Must be implemented if
+ * @disable_repository_async is implemented.
*
* The class structure for a #GsPlugin. Virtual methods here should be
* implemented by plugin implementations derived from #GsPlugin to provide their
@@ -148,6 +164,43 @@ struct _GsPluginClass
GAsyncResult *result,
GError **error);
+ void (*install_repository_async) (GsPlugin *plugin,
+ GsApp *repository,
+ GsPluginManageRepositoryFlags flags,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+ gboolean (*install_repository_finish) (GsPlugin *plugin,
+ GAsyncResult *result,
+ GError **error);
+ void (*remove_repository_async) (GsPlugin *plugin,
+ GsApp *repository,
+ GsPluginManageRepositoryFlags flags,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+ gboolean (*remove_repository_finish) (GsPlugin *plugin,
+ GAsyncResult *result,
+ GError **error);
+ void (*enable_repository_async) (GsPlugin *plugin,
+ GsApp *repository,
+ GsPluginManageRepositoryFlags flags,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+ gboolean (*enable_repository_finish) (GsPlugin *plugin,
+ GAsyncResult *result,
+ GError **error);
+ void (*disable_repository_async) (GsPlugin *plugin,
+ GsApp *repository,
+ GsPluginManageRepositoryFlags flags,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+ gboolean (*disable_repository_finish) (GsPlugin *plugin,
+ GAsyncResult *result,
+ GError **error);
+
gpointer padding[23];
};
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]