blob: 247f3b82aba79de9db9b98429e07cf572fe786a7 [file] [log] [blame]
/*
* Copyright 2018 Richard Hughes <richard@hughsie.com>
*
* SPDX-License-Identifier: LGPL-2.1-or-later
*/
#pragma once
#include <fwupdplugin.h>
#include "fu-engine-struct.h"
#define FU_TYPE_IDLE (fu_idle_get_type())
G_DECLARE_FINAL_TYPE(FuIdle, fu_idle, FU, IDLE, GObject)
FuIdle *
fu_idle_new(void);
guint32
fu_idle_inhibit(FuIdle *self, FuIdleInhibit inhibit, const gchar *reason) G_GNUC_NON_NULL(1);
void
fu_idle_uninhibit(FuIdle *self, guint32 token) G_GNUC_NON_NULL(1);
gboolean
fu_idle_has_inhibit(FuIdle *self, FuIdleInhibit inhibit) G_GNUC_NON_NULL(1);
void
fu_idle_set_timeout(FuIdle *self, guint timeout) G_GNUC_NON_NULL(1);
void
fu_idle_reset(FuIdle *self) G_GNUC_NON_NULL(1);
/**
* FuIdleLocker:
* @idle: A #FuIdle
* @token: A #guint32 number
*
* A locker to prevent daemon from shutting down on its own
**/
typedef struct {
FuIdle *idle;
guint32 token;
} FuIdleLocker;
FuIdleLocker *
fu_idle_locker_new(FuIdle *self, FuIdleInhibit inhibit, const gchar *reason) G_GNUC_NON_NULL(1);
void
fu_idle_locker_free(FuIdleLocker *locker) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuIdleLocker, fu_idle_locker_free)