From 6f0f7d1b40a8fa8d46a2d6f4317600001cdbbb18 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 19:57:27 +0200 Subject: Adding upstream version 43.5. Signed-off-by: Daniel Baumann --- lib/gs-plugin-types.h | 319 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 319 insertions(+) create mode 100644 lib/gs-plugin-types.h (limited to 'lib/gs-plugin-types.h') diff --git a/lib/gs-plugin-types.h b/lib/gs-plugin-types.h new file mode 100644 index 0000000..59504be --- /dev/null +++ b/lib/gs-plugin-types.h @@ -0,0 +1,319 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- + * vi:set noexpandtab tabstop=8 shiftwidth=8: + * + * Copyright (C) 2012-2018 Richard Hughes + * + * SPDX-License-Identifier: GPL-2.0+ + */ + +#pragma once + +#include + +G_BEGIN_DECLS + +/** + * GsPluginStatus: + * @GS_PLUGIN_STATUS_UNKNOWN: Unknown status + * @GS_PLUGIN_STATUS_WAITING: Waiting + * @GS_PLUGIN_STATUS_FINISHED: Finished + * @GS_PLUGIN_STATUS_SETUP: Setup in progress + * @GS_PLUGIN_STATUS_DOWNLOADING: Downloading in progress + * @GS_PLUGIN_STATUS_QUERYING: Querying in progress + * @GS_PLUGIN_STATUS_INSTALLING: Installing in progress + * @GS_PLUGIN_STATUS_REMOVING: Removing in progress + * + * The status of the plugin. + **/ +typedef enum { + GS_PLUGIN_STATUS_UNKNOWN, + GS_PLUGIN_STATUS_WAITING, + GS_PLUGIN_STATUS_FINISHED, + GS_PLUGIN_STATUS_SETUP, + GS_PLUGIN_STATUS_DOWNLOADING, + GS_PLUGIN_STATUS_QUERYING, + GS_PLUGIN_STATUS_INSTALLING, + GS_PLUGIN_STATUS_REMOVING, + GS_PLUGIN_STATUS_LAST /*< skip >*/ +} GsPluginStatus; + +/** + * GsPluginFlags: + * @GS_PLUGIN_FLAGS_NONE: No flags set + * @GS_PLUGIN_FLAGS_INTERACTIVE: User initiated the job + * + * The flags for the plugin at this point in time. + **/ +typedef enum { + GS_PLUGIN_FLAGS_NONE = 0, + GS_PLUGIN_FLAGS_INTERACTIVE = 1 << 4, +} GsPluginFlags; + +/** + * GsPluginError: + * @GS_PLUGIN_ERROR_FAILED: Generic failure + * @GS_PLUGIN_ERROR_NOT_SUPPORTED: Action not supported + * @GS_PLUGIN_ERROR_CANCELLED: Action was cancelled + * @GS_PLUGIN_ERROR_NO_NETWORK: No network connection available + * @GS_PLUGIN_ERROR_NO_SECURITY: Security policy forbid action + * @GS_PLUGIN_ERROR_NO_SPACE: No disk space to allow action + * @GS_PLUGIN_ERROR_AUTH_REQUIRED: Authentication was required + * @GS_PLUGIN_ERROR_AUTH_INVALID: Provided authentication was invalid + * @GS_PLUGIN_ERROR_PLUGIN_DEPSOLVE_FAILED: The plugins installed are incompatible + * @GS_PLUGIN_ERROR_DOWNLOAD_FAILED: The download action failed + * @GS_PLUGIN_ERROR_WRITE_FAILED: The save-to-disk failed + * @GS_PLUGIN_ERROR_INVALID_FORMAT: The data format is invalid + * @GS_PLUGIN_ERROR_DELETE_FAILED: The delete action failed + * @GS_PLUGIN_ERROR_RESTART_REQUIRED: A restart is required + * @GS_PLUGIN_ERROR_AC_POWER_REQUIRED: AC power is required + * @GS_PLUGIN_ERROR_TIMED_OUT: The job timed out + * @GS_PLUGIN_ERROR_BATTERY_LEVEL_TOO_LOW: The system battery level is too low + * + * The failure error types. + **/ +typedef enum { + GS_PLUGIN_ERROR_FAILED, + GS_PLUGIN_ERROR_NOT_SUPPORTED, + GS_PLUGIN_ERROR_CANCELLED, + GS_PLUGIN_ERROR_NO_NETWORK, + GS_PLUGIN_ERROR_NO_SECURITY, + GS_PLUGIN_ERROR_NO_SPACE, + GS_PLUGIN_ERROR_AUTH_REQUIRED, + GS_PLUGIN_ERROR_AUTH_INVALID, + GS_PLUGIN_ERROR_PLUGIN_DEPSOLVE_FAILED, + GS_PLUGIN_ERROR_DOWNLOAD_FAILED, + GS_PLUGIN_ERROR_WRITE_FAILED, + GS_PLUGIN_ERROR_INVALID_FORMAT, + GS_PLUGIN_ERROR_DELETE_FAILED, + GS_PLUGIN_ERROR_RESTART_REQUIRED, + GS_PLUGIN_ERROR_AC_POWER_REQUIRED, + GS_PLUGIN_ERROR_TIMED_OUT, + GS_PLUGIN_ERROR_BATTERY_LEVEL_TOO_LOW, + GS_PLUGIN_ERROR_LAST /*< skip >*/ +} GsPluginError; + +/** + * GsPluginRefineFlags: + * @GS_PLUGIN_REFINE_FLAGS_NONE: No explicit flags set + * @GS_PLUGIN_REFINE_FLAGS_REQUIRE_ID: Require the app’s ID; this is the minimum possible requirement + * @GS_PLUGIN_REFINE_FLAGS_REQUIRE_LICENSE: Require the license + * @GS_PLUGIN_REFINE_FLAGS_REQUIRE_URL: Require the URL + * @GS_PLUGIN_REFINE_FLAGS_REQUIRE_DESCRIPTION: Require the long description + * @GS_PLUGIN_REFINE_FLAGS_REQUIRE_SIZE: Require the installed and download sizes + * @GS_PLUGIN_REFINE_FLAGS_REQUIRE_RATING: Require the rating + * @GS_PLUGIN_REFINE_FLAGS_REQUIRE_VERSION: Require the version + * @GS_PLUGIN_REFINE_FLAGS_REQUIRE_HISTORY: Require the history + * @GS_PLUGIN_REFINE_FLAGS_REQUIRE_SETUP_ACTION: Require enough to install or remove the package + * @GS_PLUGIN_REFINE_FLAGS_REQUIRE_UPDATE_DETAILS: Require update details + * @GS_PLUGIN_REFINE_FLAGS_REQUIRE_ORIGIN: Require the origin + * @GS_PLUGIN_REFINE_FLAGS_REQUIRE_RELATED: Require related packages + * @GS_PLUGIN_REFINE_FLAGS_REQUIRE_ADDONS: Require available addons + * @GS_PLUGIN_REFINE_FLAGS_ALLOW_PACKAGES: Allow packages to be returned + * @GS_PLUGIN_REFINE_FLAGS_REQUIRE_UPDATE_SEVERITY: Require update severity + * @GS_PLUGIN_REFINE_FLAGS_REQUIRE_UPGRADE_REMOVED: Require distro upgrades + * @GS_PLUGIN_REFINE_FLAGS_REQUIRE_PROVENANCE: Require the provenance + * @GS_PLUGIN_REFINE_FLAGS_REQUIRE_REVIEWS: Require user-reviews + * @GS_PLUGIN_REFINE_FLAGS_REQUIRE_REVIEW_RATINGS: Require user-ratings + * @GS_PLUGIN_REFINE_FLAGS_DISABLE_FILTERING: Normally the results of a refine are + * filtered to remove non-valid apps; if this flag is set, that won’t happen. + * This is intended to be used by internal #GsPluginLoader code. (Since: 42) + * @GS_PLUGIN_REFINE_FLAGS_REQUIRE_ICON: Require the icon to be loaded + * @GS_PLUGIN_REFINE_FLAGS_REQUIRE_PERMISSIONS: Require the needed permissions + * @GS_PLUGIN_REFINE_FLAGS_REQUIRE_ORIGIN_HOSTNAME: Require the origin hostname + * @GS_PLUGIN_REFINE_FLAGS_REQUIRE_ORIGIN_UI: Require the origin for UI + * @GS_PLUGIN_REFINE_FLAGS_REQUIRE_RUNTIME: Require the runtime + * @GS_PLUGIN_REFINE_FLAGS_REQUIRE_SCREENSHOTS: Require screenshot information + * @GS_PLUGIN_REFINE_FLAGS_REQUIRE_CATEGORIES: Require categories + * @GS_PLUGIN_REFINE_FLAGS_REQUIRE_PROJECT_GROUP: Require project group + * @GS_PLUGIN_REFINE_FLAGS_REQUIRE_DEVELOPER_NAME: Require developer name + * @GS_PLUGIN_REFINE_FLAGS_REQUIRE_KUDOS: Require kudos + * @GS_PLUGIN_REFINE_FLAGS_REQUIRE_CONTENT_RATING: Require content rating + * @GS_PLUGIN_REFINE_FLAGS_REQUIRE_SIZE_DATA: Require user and cache data sizes (Since: 41) + * @GS_PLUGIN_REFINE_FLAGS_MASK: All flags (Since: 40) + * + * The refine flags. + **/ +typedef enum { + GS_PLUGIN_REFINE_FLAGS_NONE = 0, + GS_PLUGIN_REFINE_FLAGS_REQUIRE_ID = 1 << 0, + GS_PLUGIN_REFINE_FLAGS_REQUIRE_LICENSE = 1 << 1, + GS_PLUGIN_REFINE_FLAGS_REQUIRE_URL = 1 << 2, + GS_PLUGIN_REFINE_FLAGS_REQUIRE_DESCRIPTION = 1 << 3, + GS_PLUGIN_REFINE_FLAGS_REQUIRE_SIZE = 1 << 4, + GS_PLUGIN_REFINE_FLAGS_REQUIRE_RATING = 1 << 5, + GS_PLUGIN_REFINE_FLAGS_REQUIRE_VERSION = 1 << 6, + GS_PLUGIN_REFINE_FLAGS_REQUIRE_HISTORY = 1 << 7, + GS_PLUGIN_REFINE_FLAGS_REQUIRE_SETUP_ACTION = 1 << 8, + GS_PLUGIN_REFINE_FLAGS_REQUIRE_UPDATE_DETAILS = 1 << 9, + GS_PLUGIN_REFINE_FLAGS_REQUIRE_ORIGIN = 1 << 10, + GS_PLUGIN_REFINE_FLAGS_REQUIRE_RELATED = 1 << 11, + GS_PLUGIN_REFINE_FLAGS_REQUIRE_SIZE_DATA = 1 << 12, + GS_PLUGIN_REFINE_FLAGS_REQUIRE_ADDONS = 1 << 13, + GS_PLUGIN_REFINE_FLAGS_ALLOW_PACKAGES = 1 << 14, /* TODO: move to request */ + GS_PLUGIN_REFINE_FLAGS_REQUIRE_UPDATE_SEVERITY = 1 << 15, + GS_PLUGIN_REFINE_FLAGS_REQUIRE_UPGRADE_REMOVED = 1 << 16, + GS_PLUGIN_REFINE_FLAGS_REQUIRE_PROVENANCE = 1 << 17, + GS_PLUGIN_REFINE_FLAGS_REQUIRE_REVIEWS = 1 << 18, + GS_PLUGIN_REFINE_FLAGS_REQUIRE_REVIEW_RATINGS = 1 << 19, + GS_PLUGIN_REFINE_FLAGS_DISABLE_FILTERING = 1 << 20, + GS_PLUGIN_REFINE_FLAGS_REQUIRE_ICON = 1 << 21, + GS_PLUGIN_REFINE_FLAGS_REQUIRE_PERMISSIONS = 1 << 22, + GS_PLUGIN_REFINE_FLAGS_REQUIRE_ORIGIN_HOSTNAME = 1 << 23, + GS_PLUGIN_REFINE_FLAGS_REQUIRE_ORIGIN_UI = 1 << 24, + GS_PLUGIN_REFINE_FLAGS_REQUIRE_RUNTIME = 1 << 25, + GS_PLUGIN_REFINE_FLAGS_REQUIRE_SCREENSHOTS = 1 << 26, + GS_PLUGIN_REFINE_FLAGS_REQUIRE_CATEGORIES = 1 << 27, + GS_PLUGIN_REFINE_FLAGS_REQUIRE_PROJECT_GROUP = 1 << 28, + GS_PLUGIN_REFINE_FLAGS_REQUIRE_DEVELOPER_NAME = 1 << 29, + GS_PLUGIN_REFINE_FLAGS_REQUIRE_KUDOS = 1 << 30, + GS_PLUGIN_REFINE_FLAGS_REQUIRE_CONTENT_RATING = 1 << 31, + GS_PLUGIN_REFINE_FLAGS_MASK = ~0, +} GsPluginRefineFlags; + +/** + * GsPluginListAppsFlags: + * @GS_PLUGIN_LIST_APPS_FLAGS_NONE: No flags set. + * @GS_PLUGIN_LIST_APPS_FLAGS_INTERACTIVE: User initiated the job. + * + * Flags for an operation to list apps matching a given query. + * + * Since: 43 + */ +typedef enum { + GS_PLUGIN_LIST_APPS_FLAGS_NONE = 0, + GS_PLUGIN_LIST_APPS_FLAGS_INTERACTIVE = 1 << 0, +} GsPluginListAppsFlags; + +/** + * GsPluginRefineCategoriesFlags: + * @GS_PLUGIN_REFINE_CATEGORIES_FLAGS_NONE: No flags set. + * @GS_PLUGIN_REFINE_CATEGORIES_FLAGS_INTERACTIVE: User initiated the job. + * @GS_PLUGIN_REFINE_CATEGORIES_FLAGS_SIZE: Work out the number of apps in each category. + * + * Flags for an operation to refine categories. + * + * Since: 43 + */ +typedef enum { + GS_PLUGIN_REFINE_CATEGORIES_FLAGS_NONE = 0, + GS_PLUGIN_REFINE_CATEGORIES_FLAGS_INTERACTIVE = 1 << 0, + GS_PLUGIN_REFINE_CATEGORIES_FLAGS_SIZE = 1 << 1, +} GsPluginRefineCategoriesFlags; + +/** + * GsPluginRefreshMetadataFlags: + * @GS_PLUGIN_REFRESH_METADATA_FLAGS_NONE: No flags set. + * @GS_PLUGIN_REFRESH_METADATA_FLAGS_INTERACTIVE: User initiated the job. + * + * Flags for an operation to refresh metadata. + * + * Since: 42 + */ +typedef enum { + GS_PLUGIN_REFRESH_METADATA_FLAGS_NONE = 0, + GS_PLUGIN_REFRESH_METADATA_FLAGS_INTERACTIVE = 1 << 0, +} GsPluginRefreshMetadataFlags; + +/** + * GsPluginListDistroUpgradesFlags: + * @GS_PLUGIN_LIST_DISTRO_UPGRADES_FLAGS_NONE: No flags set. + * @GS_PLUGIN_LIST_DISTRO_UPGRADES_FLAGS_INTERACTIVE: User initiated the job. + * + * Flags for an operation to list available distro upgrades. + * + * Since: 42 + */ +typedef enum { + GS_PLUGIN_LIST_DISTRO_UPGRADES_FLAGS_NONE = 0, + 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 + * @GS_PLUGIN_RULE_RUN_AFTER: Order the plugin after another + * @GS_PLUGIN_RULE_RUN_BEFORE: Order the plugin before another + * @GS_PLUGIN_RULE_BETTER_THAN: Results are better than another + * + * The rules used for ordering plugins. + * Plugins are expected to add rules in the init function for their #GsPlugin + * subclass. + **/ +typedef enum { + GS_PLUGIN_RULE_CONFLICTS, + GS_PLUGIN_RULE_RUN_AFTER, + GS_PLUGIN_RULE_RUN_BEFORE, + GS_PLUGIN_RULE_BETTER_THAN, + GS_PLUGIN_RULE_LAST /*< skip >*/ +} GsPluginRule; + +/** + * GsPluginAction: + * @GS_PLUGIN_ACTION_UNKNOWN: Action is unknown + * @GS_PLUGIN_ACTION_INSTALL: Install an application + * @GS_PLUGIN_ACTION_REMOVE: Remove an application + * @GS_PLUGIN_ACTION_UPDATE: Update an application + * @GS_PLUGIN_ACTION_UPGRADE_DOWNLOAD: Download a distro upgrade + * @GS_PLUGIN_ACTION_UPGRADE_TRIGGER: Trigger a distro upgrade + * @GS_PLUGIN_ACTION_LAUNCH: Launch an application + * @GS_PLUGIN_ACTION_UPDATE_CANCEL: Cancel the update + * @GS_PLUGIN_ACTION_GET_UPDATES: Get the list of updates + * @GS_PLUGIN_ACTION_GET_SOURCES: Get the list of sources + * @GS_PLUGIN_ACTION_FILE_TO_APP: Convert the file to an application + * @GS_PLUGIN_ACTION_URL_TO_APP: Convert the URI to an application + * @GS_PLUGIN_ACTION_GET_UPDATES_HISTORICAL: Get the list of historical updates + * @GS_PLUGIN_ACTION_DOWNLOAD: Download an application + * @GS_PLUGIN_ACTION_GET_LANGPACKS: Get appropriate language pack + * @GS_PLUGIN_ACTION_INSTALL_REPO: Install a repository (Since: 41) + * @GS_PLUGIN_ACTION_REMOVE_REPO: Remove a repository (Since: 41) + * @GS_PLUGIN_ACTION_ENABLE_REPO: Enable a repository (Since: 41) + * @GS_PLUGIN_ACTION_DISABLE_REPO: Disable a repository (Since: 41) + * + * The plugin action. + **/ +typedef enum { + GS_PLUGIN_ACTION_UNKNOWN, + GS_PLUGIN_ACTION_INSTALL, + GS_PLUGIN_ACTION_REMOVE, + GS_PLUGIN_ACTION_UPDATE, + GS_PLUGIN_ACTION_UPGRADE_DOWNLOAD, + GS_PLUGIN_ACTION_UPGRADE_TRIGGER, + GS_PLUGIN_ACTION_LAUNCH, + GS_PLUGIN_ACTION_UPDATE_CANCEL, + GS_PLUGIN_ACTION_GET_UPDATES, + GS_PLUGIN_ACTION_GET_SOURCES, + GS_PLUGIN_ACTION_FILE_TO_APP, + GS_PLUGIN_ACTION_URL_TO_APP, + GS_PLUGIN_ACTION_GET_UPDATES_HISTORICAL, + GS_PLUGIN_ACTION_DOWNLOAD, + GS_PLUGIN_ACTION_GET_LANGPACKS, + GS_PLUGIN_ACTION_INSTALL_REPO, + GS_PLUGIN_ACTION_REMOVE_REPO, + GS_PLUGIN_ACTION_ENABLE_REPO, + GS_PLUGIN_ACTION_DISABLE_REPO, + GS_PLUGIN_ACTION_LAST /*< skip >*/ +} GsPluginAction; + +G_END_DECLS -- cgit v1.2.3