blob: 91d00fdc7271d002a1e95674657b70e20b530577 [file] [log] [blame]
/*
* Copyright 2017 Richard Hughes <richard@hughsie.com>
*
* SPDX-License-Identifier: LGPL-2.1-or-later
*/
#pragma once
#include <fwupdplugin.h>
#define FU_TYPE_REMOTE_LIST (fu_remote_list_get_type())
G_DECLARE_FINAL_TYPE(FuRemoteList, fu_remote_list, FU, REMOTE_LIST, GObject)
/**
* FuRemoteListLoadFlags:
* @FU_REMOTE_LIST_LOAD_FLAG_NONE: No flags set
* @FU_REMOTE_LIST_LOAD_FLAG_READONLY_FS: Ignore readonly filesystem errors
* @FU_REMOTE_LIST_LOAD_FLAG_NO_CACHE: Do not save persistent xmlb silos
* @FU_REMOTE_LIST_LOAD_FLAG_TEST_REMOTE: Enable test mode remotes
* @FU_REMOTE_LIST_LOAD_FLAG_FIX_METADATA_URI: Auto-fix to use the newest supported metadata
*
* The flags to use when loading a remote_listuration file.
**/
typedef enum {
FU_REMOTE_LIST_LOAD_FLAG_NONE = 0,
FU_REMOTE_LIST_LOAD_FLAG_READONLY_FS = 1 << 0,
FU_REMOTE_LIST_LOAD_FLAG_NO_CACHE = 1 << 1,
FU_REMOTE_LIST_LOAD_FLAG_TEST_REMOTE = 1 << 2,
FU_REMOTE_LIST_LOAD_FLAG_FIX_METADATA_URI = 1 << 3,
/*< private >*/
FU_REMOTE_LIST_LOAD_FLAG_LAST
} FuRemoteListLoadFlags;
FuRemoteList *
fu_remote_list_new(void);
gboolean
fu_remote_list_set_testing_remote_enabled(FuRemoteList *self, gboolean enable, GError **error)
G_GNUC_NON_NULL(1);
gboolean
fu_remote_list_load(FuRemoteList *self, FuRemoteListLoadFlags flags, GError **error)
G_GNUC_NON_NULL(1);
gboolean
fu_remote_list_set_key_value(FuRemoteList *self,
const gchar *remote_id,
const gchar *key,
const gchar *value,
GError **error) G_GNUC_NON_NULL(1, 2, 3, 4);
GPtrArray *
fu_remote_list_get_all(FuRemoteList *self) G_GNUC_NON_NULL(1);
FwupdRemote *
fu_remote_list_get_by_id(FuRemoteList *self, const gchar *remote_id) G_GNUC_NON_NULL(1, 2);
void
fu_remote_list_set_lvfs_metadata_format(FuRemoteList *self, const gchar *lvfs_metadata_format);
/* for the self tests */
void
fu_remote_list_add_remote(FuRemoteList *self, FwupdRemote *remote) G_GNUC_NON_NULL(1, 2);