fwupd/src/fu-idle.h

44 lines
1.0 KiB
C

/*
* Copyright (C) 2018 Richard Hughes <richard@hughsie.com>
*
* SPDX-License-Identifier: LGPL-2.1+
*/
#pragma once
#include <glib-object.h>
#include <fwupd.h>
#include "fu-device.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,
const gchar *reason);
void fu_idle_uninhibit (FuIdle *self,
guint32 token);
void fu_idle_set_timeout (FuIdle *self,
guint timeout);
void fu_idle_reset (FuIdle *self);
FwupdStatus fu_idle_get_status (FuIdle *self);
/**
* 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,
const gchar *reason);
void fu_idle_locker_free (FuIdleLocker *locker);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuIdleLocker, fu_idle_locker_free)