blob: 24b731966bd7a6c875f13bf14809e98105e83f25 [file] [log] [blame]
Richard Hughes117f8572021-02-09 20:02:48 +00001/*
2 * Copyright (C) 2021 Richard Hughes <richard@hughsie.com>
3 *
4 * SPDX-License-Identifier: LGPL-2.1+
5 */
6
7#pragma once
8
9#include "fu-device.h"
10
11#define FU_TYPE_BACKEND (fu_backend_get_type ())
12G_DECLARE_DERIVABLE_TYPE (FuBackend, fu_backend, FU, BACKEND, GObject)
13
14struct _FuBackendClass
15{
16 GObjectClass parent_class;
17 gboolean (*setup) (FuBackend *self,
18 GError **error)
19 G_GNUC_WARN_UNUSED_RESULT;
20 gboolean (*coldplug) (FuBackend *self,
21 GError **error)
22 G_GNUC_WARN_UNUSED_RESULT;
Richard Hughes117f8572021-02-09 20:02:48 +000023};
24
25const gchar *fu_backend_get_name (FuBackend *self);
Richard Hughes404f0522021-02-16 18:25:32 +000026gboolean fu_backend_get_enabled (FuBackend *self);
27void fu_backend_set_enabled (FuBackend *self,
28 gboolean enabled);
Richard Hughes253e6e42021-02-24 14:59:24 +000029FuDevice *fu_backend_lookup_by_id (FuBackend *self,
30 const gchar *device_id);
Richard Hughes117f8572021-02-09 20:02:48 +000031gboolean fu_backend_setup (FuBackend *self,
32 GError **error)
33 G_GNUC_WARN_UNUSED_RESULT;
34gboolean fu_backend_coldplug (FuBackend *self,
35 GError **error)
36 G_GNUC_WARN_UNUSED_RESULT;
Richard Hughes117f8572021-02-09 20:02:48 +000037void fu_backend_device_added (FuBackend *self,
38 FuDevice *device);
39void fu_backend_device_removed (FuBackend *self,
40 FuDevice *device);
41void fu_backend_device_changed (FuBackend *self,
42 FuDevice *device);