/*
 * This file is generated by gdbus-codegen, do not modify it.
 *
 * The license of this code is the same as for the D-Bus interface description
 * it was derived from. Note that it links to GLib, so must comply with the
 * LGPL linking clauses.
 */

#ifndef __META_DBUS_LOGIN1_H__
#define __META_DBUS_LOGIN1_H__

#include <gio/gio.h>

G_BEGIN_DECLS


/* ------------------------------------------------------------------------ */
/* Declarations for org.freedesktop.login1.Session */

#define LOGIN1_TYPE_SESSION (login1_session_get_type ())
#define LOGIN1_SESSION(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), LOGIN1_TYPE_SESSION, Login1Session))
#define LOGIN1_IS_SESSION(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), LOGIN1_TYPE_SESSION))
#define LOGIN1_SESSION_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), LOGIN1_TYPE_SESSION, Login1SessionIface))

struct _Login1Session;
typedef struct _Login1Session Login1Session;
typedef struct _Login1SessionIface Login1SessionIface;

struct _Login1SessionIface
{
  GTypeInterface parent_iface;



  gboolean (*handle_activate) (
    Login1Session *object,
    GDBusMethodInvocation *invocation);

  gboolean (*handle_pause_device_complete) (
    Login1Session *object,
    GDBusMethodInvocation *invocation,
    guint arg_major,
    guint arg_minor);

  gboolean (*handle_release_control) (
    Login1Session *object,
    GDBusMethodInvocation *invocation);

  gboolean (*handle_release_device) (
    Login1Session *object,
    GDBusMethodInvocation *invocation,
    guint arg_major,
    guint arg_minor);

  gboolean (*handle_take_control) (
    Login1Session *object,
    GDBusMethodInvocation *invocation,
    gboolean arg_force);

  gboolean (*handle_take_device) (
    Login1Session *object,
    GDBusMethodInvocation *invocation,
    GUnixFDList *fd_list,
    guint arg_major,
    guint arg_minor);

  gboolean  (*get_active) (Login1Session *object);

  void (*pause_device) (
    Login1Session *object,
    guint arg_major,
    guint arg_minor,
    const gchar *arg_type);

  void (*resume_device) (
    Login1Session *object,
    guint arg_major,
    guint arg_minor,
    GVariant *arg_fd);

};

#if GLIB_CHECK_VERSION(2, 44, 0)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (Login1Session, g_object_unref)
#endif

GType login1_session_get_type (void) G_GNUC_CONST;

GDBusInterfaceInfo *login1_session_interface_info (void);
guint login1_session_override_properties (GObjectClass *klass, guint property_id_begin);


/* D-Bus method call completion functions: */
void login1_session_complete_activate (
    Login1Session *object,
    GDBusMethodInvocation *invocation);

void login1_session_complete_take_control (
    Login1Session *object,
    GDBusMethodInvocation *invocation);

void login1_session_complete_release_control (
    Login1Session *object,
    GDBusMethodInvocation *invocation);

void login1_session_complete_take_device (
    Login1Session *object,
    GDBusMethodInvocation *invocation,
    GUnixFDList *fd_list,
    GVariant *fd,
    gboolean paused);

void login1_session_complete_release_device (
    Login1Session *object,
    GDBusMethodInvocation *invocation);

void login1_session_complete_pause_device_complete (
    Login1Session *object,
    GDBusMethodInvocation *invocation);



/* D-Bus signal emissions functions: */
void login1_session_emit_pause_device (
    Login1Session *object,
    guint arg_major,
    guint arg_minor,
    const gchar *arg_type);

void login1_session_emit_resume_device (
    Login1Session *object,
    guint arg_major,
    guint arg_minor,
    GVariant *arg_fd);



/* D-Bus method calls: */
void login1_session_call_activate (
    Login1Session *proxy,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean login1_session_call_activate_finish (
    Login1Session *proxy,
    GAsyncResult *res,
    GError **error);

gboolean login1_session_call_activate_sync (
    Login1Session *proxy,
    GCancellable *cancellable,
    GError **error);

void login1_session_call_take_control (
    Login1Session *proxy,
    gboolean arg_force,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean login1_session_call_take_control_finish (
    Login1Session *proxy,
    GAsyncResult *res,
    GError **error);

gboolean login1_session_call_take_control_sync (
    Login1Session *proxy,
    gboolean arg_force,
    GCancellable *cancellable,
    GError **error);

void login1_session_call_release_control (
    Login1Session *proxy,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean login1_session_call_release_control_finish (
    Login1Session *proxy,
    GAsyncResult *res,
    GError **error);

gboolean login1_session_call_release_control_sync (
    Login1Session *proxy,
    GCancellable *cancellable,
    GError **error);

void login1_session_call_take_device (
    Login1Session *proxy,
    guint arg_major,
    guint arg_minor,
    GUnixFDList *fd_list,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean login1_session_call_take_device_finish (
    Login1Session *proxy,
    GVariant **out_fd,
    gboolean *out_paused,
    GUnixFDList **out_fd_list,
    GAsyncResult *res,
    GError **error);

gboolean login1_session_call_take_device_sync (
    Login1Session *proxy,
    guint arg_major,
    guint arg_minor,
    GUnixFDList  *fd_list,
    GVariant **out_fd,
    gboolean *out_paused,
    GUnixFDList **out_fd_list,
    GCancellable *cancellable,
    GError **error);

void login1_session_call_release_device (
    Login1Session *proxy,
    guint arg_major,
    guint arg_minor,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean login1_session_call_release_device_finish (
    Login1Session *proxy,
    GAsyncResult *res,
    GError **error);

gboolean login1_session_call_release_device_sync (
    Login1Session *proxy,
    guint arg_major,
    guint arg_minor,
    GCancellable *cancellable,
    GError **error);

void login1_session_call_pause_device_complete (
    Login1Session *proxy,
    guint arg_major,
    guint arg_minor,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean login1_session_call_pause_device_complete_finish (
    Login1Session *proxy,
    GAsyncResult *res,
    GError **error);

gboolean login1_session_call_pause_device_complete_sync (
    Login1Session *proxy,
    guint arg_major,
    guint arg_minor,
    GCancellable *cancellable,
    GError **error);



/* D-Bus property accessors: */
gboolean login1_session_get_active (Login1Session *object);
void login1_session_set_active (Login1Session *object, gboolean value);


/* ---- */

#define LOGIN1_TYPE_SESSION_PROXY (login1_session_proxy_get_type ())
#define LOGIN1_SESSION_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), LOGIN1_TYPE_SESSION_PROXY, Login1SessionProxy))
#define LOGIN1_SESSION_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), LOGIN1_TYPE_SESSION_PROXY, Login1SessionProxyClass))
#define LOGIN1_SESSION_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), LOGIN1_TYPE_SESSION_PROXY, Login1SessionProxyClass))
#define LOGIN1_IS_SESSION_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), LOGIN1_TYPE_SESSION_PROXY))
#define LOGIN1_IS_SESSION_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), LOGIN1_TYPE_SESSION_PROXY))

typedef struct _Login1SessionProxy Login1SessionProxy;
typedef struct _Login1SessionProxyClass Login1SessionProxyClass;
typedef struct _Login1SessionProxyPrivate Login1SessionProxyPrivate;

struct _Login1SessionProxy
{
  /*< private >*/
  GDBusProxy parent_instance;
  Login1SessionProxyPrivate *priv;
};

struct _Login1SessionProxyClass
{
  GDBusProxyClass parent_class;
};

GType login1_session_proxy_get_type (void) G_GNUC_CONST;

#if GLIB_CHECK_VERSION(2, 44, 0)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (Login1SessionProxy, g_object_unref)
#endif

void login1_session_proxy_new (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
Login1Session *login1_session_proxy_new_finish (
    GAsyncResult        *res,
    GError             **error);
Login1Session *login1_session_proxy_new_sync (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);

void login1_session_proxy_new_for_bus (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
Login1Session *login1_session_proxy_new_for_bus_finish (
    GAsyncResult        *res,
    GError             **error);
Login1Session *login1_session_proxy_new_for_bus_sync (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);


/* ---- */

#define LOGIN1_TYPE_SESSION_SKELETON (login1_session_skeleton_get_type ())
#define LOGIN1_SESSION_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), LOGIN1_TYPE_SESSION_SKELETON, Login1SessionSkeleton))
#define LOGIN1_SESSION_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), LOGIN1_TYPE_SESSION_SKELETON, Login1SessionSkeletonClass))
#define LOGIN1_SESSION_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), LOGIN1_TYPE_SESSION_SKELETON, Login1SessionSkeletonClass))
#define LOGIN1_IS_SESSION_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), LOGIN1_TYPE_SESSION_SKELETON))
#define LOGIN1_IS_SESSION_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), LOGIN1_TYPE_SESSION_SKELETON))

typedef struct _Login1SessionSkeleton Login1SessionSkeleton;
typedef struct _Login1SessionSkeletonClass Login1SessionSkeletonClass;
typedef struct _Login1SessionSkeletonPrivate Login1SessionSkeletonPrivate;

struct _Login1SessionSkeleton
{
  /*< private >*/
  GDBusInterfaceSkeleton parent_instance;
  Login1SessionSkeletonPrivate *priv;
};

struct _Login1SessionSkeletonClass
{
  GDBusInterfaceSkeletonClass parent_class;
};

GType login1_session_skeleton_get_type (void) G_GNUC_CONST;

#if GLIB_CHECK_VERSION(2, 44, 0)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (Login1SessionSkeleton, g_object_unref)
#endif

Login1Session *login1_session_skeleton_new (void);


/* ------------------------------------------------------------------------ */
/* Declarations for org.freedesktop.login1.Seat */

#define LOGIN1_TYPE_SEAT (login1_seat_get_type ())
#define LOGIN1_SEAT(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), LOGIN1_TYPE_SEAT, Login1Seat))
#define LOGIN1_IS_SEAT(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), LOGIN1_TYPE_SEAT))
#define LOGIN1_SEAT_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), LOGIN1_TYPE_SEAT, Login1SeatIface))

struct _Login1Seat;
typedef struct _Login1Seat Login1Seat;
typedef struct _Login1SeatIface Login1SeatIface;

struct _Login1SeatIface
{
  GTypeInterface parent_iface;

  gboolean (*handle_switch_to) (
    Login1Seat *object,
    GDBusMethodInvocation *invocation,
    guint arg_vt);

};

#if GLIB_CHECK_VERSION(2, 44, 0)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (Login1Seat, g_object_unref)
#endif

GType login1_seat_get_type (void) G_GNUC_CONST;

GDBusInterfaceInfo *login1_seat_interface_info (void);
guint login1_seat_override_properties (GObjectClass *klass, guint property_id_begin);


/* D-Bus method call completion functions: */
void login1_seat_complete_switch_to (
    Login1Seat *object,
    GDBusMethodInvocation *invocation);



/* D-Bus method calls: */
void login1_seat_call_switch_to (
    Login1Seat *proxy,
    guint arg_vt,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean login1_seat_call_switch_to_finish (
    Login1Seat *proxy,
    GAsyncResult *res,
    GError **error);

gboolean login1_seat_call_switch_to_sync (
    Login1Seat *proxy,
    guint arg_vt,
    GCancellable *cancellable,
    GError **error);



/* ---- */

#define LOGIN1_TYPE_SEAT_PROXY (login1_seat_proxy_get_type ())
#define LOGIN1_SEAT_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), LOGIN1_TYPE_SEAT_PROXY, Login1SeatProxy))
#define LOGIN1_SEAT_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), LOGIN1_TYPE_SEAT_PROXY, Login1SeatProxyClass))
#define LOGIN1_SEAT_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), LOGIN1_TYPE_SEAT_PROXY, Login1SeatProxyClass))
#define LOGIN1_IS_SEAT_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), LOGIN1_TYPE_SEAT_PROXY))
#define LOGIN1_IS_SEAT_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), LOGIN1_TYPE_SEAT_PROXY))

typedef struct _Login1SeatProxy Login1SeatProxy;
typedef struct _Login1SeatProxyClass Login1SeatProxyClass;
typedef struct _Login1SeatProxyPrivate Login1SeatProxyPrivate;

struct _Login1SeatProxy
{
  /*< private >*/
  GDBusProxy parent_instance;
  Login1SeatProxyPrivate *priv;
};

struct _Login1SeatProxyClass
{
  GDBusProxyClass parent_class;
};

GType login1_seat_proxy_get_type (void) G_GNUC_CONST;

#if GLIB_CHECK_VERSION(2, 44, 0)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (Login1SeatProxy, g_object_unref)
#endif

void login1_seat_proxy_new (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
Login1Seat *login1_seat_proxy_new_finish (
    GAsyncResult        *res,
    GError             **error);
Login1Seat *login1_seat_proxy_new_sync (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);

void login1_seat_proxy_new_for_bus (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
Login1Seat *login1_seat_proxy_new_for_bus_finish (
    GAsyncResult        *res,
    GError             **error);
Login1Seat *login1_seat_proxy_new_for_bus_sync (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);


/* ---- */

#define LOGIN1_TYPE_SEAT_SKELETON (login1_seat_skeleton_get_type ())
#define LOGIN1_SEAT_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), LOGIN1_TYPE_SEAT_SKELETON, Login1SeatSkeleton))
#define LOGIN1_SEAT_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), LOGIN1_TYPE_SEAT_SKELETON, Login1SeatSkeletonClass))
#define LOGIN1_SEAT_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), LOGIN1_TYPE_SEAT_SKELETON, Login1SeatSkeletonClass))
#define LOGIN1_IS_SEAT_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), LOGIN1_TYPE_SEAT_SKELETON))
#define LOGIN1_IS_SEAT_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), LOGIN1_TYPE_SEAT_SKELETON))

typedef struct _Login1SeatSkeleton Login1SeatSkeleton;
typedef struct _Login1SeatSkeletonClass Login1SeatSkeletonClass;
typedef struct _Login1SeatSkeletonPrivate Login1SeatSkeletonPrivate;

struct _Login1SeatSkeleton
{
  /*< private >*/
  GDBusInterfaceSkeleton parent_instance;
  Login1SeatSkeletonPrivate *priv;
};

struct _Login1SeatSkeletonClass
{
  GDBusInterfaceSkeletonClass parent_class;
};

GType login1_seat_skeleton_get_type (void) G_GNUC_CONST;

#if GLIB_CHECK_VERSION(2, 44, 0)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (Login1SeatSkeleton, g_object_unref)
#endif

Login1Seat *login1_seat_skeleton_new (void);


G_END_DECLS

#endif /* __META_DBUS_LOGIN1_H__ */
