blob: b35bac4087738766fe5a630a25c94b572abf6c34 [file] [log] [blame]
/*
* Copyright 2022 Richard Hughes <richard@hughsie.com>
*
* SPDX-License-Identifier: LGPL-2.1-or-later
*/
#pragma once
#include "fu-daemon-struct.h"
#include "fu-engine.h"
#define FU_TYPE_DAEMON (fu_daemon_get_type())
G_DECLARE_DERIVABLE_TYPE(FuDaemon, fu_daemon, FU, DAEMON, GObject)
struct _FuDaemonClass {
GObjectClass parent_class;
gboolean (*setup)(FuDaemon *self,
const gchar *socket_address,
FuProgress *progress,
GError **error);
gboolean (*start)(FuDaemon *self, GError **error);
gboolean (*stop)(FuDaemon *self, GError **error);
};
FuDaemon *
fu_daemon_new(void);
void
fu_daemon_schedule_housekeeping(FuDaemon *self) G_GNUC_NON_NULL(1);
void
fu_daemon_schedule_process_quit(FuDaemon *self) G_GNUC_NON_NULL(1);
gboolean
fu_daemon_setup(FuDaemon *self, const gchar *socket_address, GError **error) G_GNUC_NON_NULL(1);
gboolean
fu_daemon_start(FuDaemon *self, GError **error) G_GNUC_NON_NULL(1);
gboolean
fu_daemon_stop(FuDaemon *self, GError **error) G_GNUC_NON_NULL(1);
FuEngine *
fu_daemon_get_engine(FuDaemon *self) G_GNUC_NON_NULL(1);
FuDaemonMachineKind
fu_daemon_get_machine_kind(FuDaemon *self) G_GNUC_NON_NULL(1);
void
fu_daemon_set_machine_kind(FuDaemon *self, FuDaemonMachineKind machine_kind) G_GNUC_NON_NULL(1);
void
fu_daemon_set_update_in_progress(FuDaemon *self, gboolean update_in_progress) G_GNUC_NON_NULL(1);
gboolean
fu_daemon_get_pending_stop(FuDaemon *self) G_GNUC_NON_NULL(1);