/* dbus.c generated by valac 0.56.18-dirty, the Vala compiler
 * generated from dbus.vala, do not modify */

/*
 * This file is part of budgie-desktop
 *
 * Copyright Budgie Desktop Developers
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 */

#include <glib-object.h>
#include <gio/gio.h>
#include <glib.h>
#include <string.h>
#include <stdlib.h>

#if !defined(VALA_STRICT_C)
#if !defined(__clang__) && defined(__GNUC__) && (__GNUC__ >= 14)
#pragma GCC diagnostic warning "-Wincompatible-pointer-types"
#elif defined(__clang__) && (__clang_major__ >= 16)
#pragma clang diagnostic ignored "-Wincompatible-function-pointer-types"
#pragma clang diagnostic ignored "-Wincompatible-pointer-types"
#endif
#endif
#if !defined(VALA_EXTERN)
#if defined(_MSC_VER)
#define VALA_EXTERN __declspec(dllexport) extern
#elif __GNUC__ >= 4
#define VALA_EXTERN __attribute__((visibility("default"))) extern
#else
#define VALA_EXTERN extern
#endif
#endif

#define BUDGIE_TYPE_POWER_DIALOG (budgie_power_dialog_get_type ())
#define BUDGIE_POWER_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BUDGIE_TYPE_POWER_DIALOG, BudgiePowerDialog))
#define BUDGIE_POWER_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BUDGIE_TYPE_POWER_DIALOG, BudgiePowerDialogClass))
#define BUDGIE_IS_POWER_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BUDGIE_TYPE_POWER_DIALOG))
#define BUDGIE_IS_POWER_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BUDGIE_TYPE_POWER_DIALOG))
#define BUDGIE_POWER_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BUDGIE_TYPE_POWER_DIALOG, BudgiePowerDialogClass))

typedef struct _BudgiePowerDialog BudgiePowerDialog;
typedef struct _BudgiePowerDialogClass BudgiePowerDialogClass;
typedef struct _BudgiePowerDialogPrivate BudgiePowerDialogPrivate;
enum  {
	BUDGIE_POWER_DIALOG_0_PROPERTY,
	BUDGIE_POWER_DIALOG_IS_SHOWING_PROPERTY,
	BUDGIE_POWER_DIALOG_NUM_PROPERTIES
};
static GParamSpec* budgie_power_dialog_properties[BUDGIE_POWER_DIALOG_NUM_PROPERTIES];
enum  {
	BUDGIE_POWER_DIALOG_TOGGLE_SIGNAL,
	BUDGIE_POWER_DIALOG_NUM_SIGNALS
};
static guint budgie_power_dialog_signals[BUDGIE_POWER_DIALOG_NUM_SIGNALS] = {0};

#define BUDGIE_TYPE_LOGIND_REMOTE (budgie_logind_remote_get_type ())
#define BUDGIE_LOGIND_REMOTE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BUDGIE_TYPE_LOGIND_REMOTE, BudgieLogindRemote))
#define BUDGIE_IS_LOGIND_REMOTE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BUDGIE_TYPE_LOGIND_REMOTE))
#define BUDGIE_LOGIND_REMOTE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), BUDGIE_TYPE_LOGIND_REMOTE, BudgieLogindRemoteIface))

typedef struct _BudgieLogindRemote BudgieLogindRemote;
typedef struct _BudgieLogindRemoteIface BudgieLogindRemoteIface;

#define BUDGIE_TYPE_LOGIND_REMOTE_PROXY (budgie_logind_remote_proxy_get_type ())
typedef GDBusProxy BudgieLogindRemoteProxy;
typedef GDBusProxyClass BudgieLogindRemoteProxyClass;
#define _g_free0(var) (var = (g_free (var), NULL))

#define BUDGIE_TYPE_SESSION_MANAGER_REMOTE (budgie_session_manager_remote_get_type ())
#define BUDGIE_SESSION_MANAGER_REMOTE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BUDGIE_TYPE_SESSION_MANAGER_REMOTE, BudgieSessionManagerRemote))
#define BUDGIE_IS_SESSION_MANAGER_REMOTE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BUDGIE_TYPE_SESSION_MANAGER_REMOTE))
#define BUDGIE_SESSION_MANAGER_REMOTE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), BUDGIE_TYPE_SESSION_MANAGER_REMOTE, BudgieSessionManagerRemoteIface))

typedef struct _BudgieSessionManagerRemote BudgieSessionManagerRemote;
typedef struct _BudgieSessionManagerRemoteIface BudgieSessionManagerRemoteIface;

#define BUDGIE_TYPE_SESSION_MANAGER_REMOTE_PROXY (budgie_session_manager_remote_proxy_get_type ())
typedef GDBusProxy BudgieSessionManagerRemoteProxy;
typedef GDBusProxyClass BudgieSessionManagerRemoteProxyClass;
typedef struct _budgie_session_manager_remote_RebootReadyData budgie_session_manager_remote_RebootReadyData;
typedef struct _budgie_session_manager_remote_ShutdownReadyData budgie_session_manager_remote_ShutdownReadyData;

#define BUDGIE_TYPE_SCREENSAVER_REMOTE (budgie_screensaver_remote_get_type ())
#define BUDGIE_SCREENSAVER_REMOTE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BUDGIE_TYPE_SCREENSAVER_REMOTE, BudgieScreensaverRemote))
#define BUDGIE_IS_SCREENSAVER_REMOTE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BUDGIE_TYPE_SCREENSAVER_REMOTE))
#define BUDGIE_SCREENSAVER_REMOTE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), BUDGIE_TYPE_SCREENSAVER_REMOTE, BudgieScreensaverRemoteIface))

typedef struct _BudgieScreensaverRemote BudgieScreensaverRemote;
typedef struct _BudgieScreensaverRemoteIface BudgieScreensaverRemoteIface;

#define BUDGIE_TYPE_SCREENSAVER_REMOTE_PROXY (budgie_screensaver_remote_proxy_get_type ())
typedef GDBusProxy BudgieScreensaverRemoteProxy;
typedef GDBusProxyClass BudgieScreensaverRemoteProxyClass;

struct _BudgiePowerDialog {
	GObject parent_instance;
	BudgiePowerDialogPrivate * priv;
};

struct _BudgiePowerDialogClass {
	GObjectClass parent_class;
};

struct _BudgiePowerDialogPrivate {
	gboolean _is_showing;
};

struct _BudgieLogindRemoteIface {
	GTypeInterface parent_iface;
	gchar* (*can_hibernate) (BudgieLogindRemote* self, GError** error);
	void (*suspend) (BudgieLogindRemote* self, gboolean interactive, GError** error);
	void (*hibernate) (BudgieLogindRemote* self, gboolean interactive, GError** error);
};

struct _BudgieSessionManagerRemoteIface {
	GTypeInterface parent_iface;
	void (*Logout) (BudgieSessionManagerRemote* self, guint mode, GError** error);
	void (*Reboot) (BudgieSessionManagerRemote* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*Reboot_finish) (BudgieSessionManagerRemote* self, GAsyncResult* _res_, GError** error);
	void (*Shutdown) (BudgieSessionManagerRemote* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*Shutdown_finish) (BudgieSessionManagerRemote* self, GAsyncResult* _res_, GError** error);
};

struct _budgie_session_manager_remote_RebootReadyData {
	GDBusMethodInvocation* _invocation_;
};

struct _budgie_session_manager_remote_ShutdownReadyData {
	GDBusMethodInvocation* _invocation_;
};

struct _BudgieScreensaverRemoteIface {
	GTypeInterface parent_iface;
	void (*lock) (BudgieScreensaverRemote* self, GError** error);
};

static gint BudgiePowerDialog_private_offset;
static gpointer budgie_power_dialog_parent_class = NULL;

VALA_EXTERN GType budgie_power_dialog_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (BudgiePowerDialog, g_object_unref)
VALA_EXTERN guint budgie_power_dialog_register_object (void* object,
                                           GDBusConnection* connection,
                                           const gchar* path,
                                           GError** error);
VALA_EXTERN void budgie_power_dialog_Toggle (BudgiePowerDialog* self,
                                 GError** error);
VALA_EXTERN gboolean budgie_power_dialog_get_is_showing (BudgiePowerDialog* self);
VALA_EXTERN void budgie_power_dialog_set_is_showing (BudgiePowerDialog* self,
                                         gboolean value);
VALA_EXTERN BudgiePowerDialog* budgie_power_dialog_new (void);
VALA_EXTERN BudgiePowerDialog* budgie_power_dialog_construct (GType object_type);
static void budgie_power_dialog_finalize (GObject * obj);
static GType budgie_power_dialog_get_type_once (void);
static void _vala_budgie_power_dialog_get_property (GObject * object,
                                             guint property_id,
                                             GValue * value,
                                             GParamSpec * pspec);
static void _vala_budgie_power_dialog_set_property (GObject * object,
                                             guint property_id,
                                             const GValue * value,
                                             GParamSpec * pspec);
static void _dbus_budgie_power_dialog_Toggle (BudgiePowerDialog* self,
                                       GVariant* _parameters_,
                                       GDBusMethodInvocation* invocation);
static void budgie_power_dialog_dbus_interface_method_call (GDBusConnection* connection,
                                                     const gchar* sender,
                                                     const gchar* object_path,
                                                     const gchar* interface_name,
                                                     const gchar* method_name,
                                                     GVariant* parameters,
                                                     GDBusMethodInvocation* invocation,
                                                     gpointer user_data);
static GVariant* budgie_power_dialog_dbus_interface_get_property (GDBusConnection* connection,
                                                           const gchar* sender,
                                                           const gchar* object_path,
                                                           const gchar* interface_name,
                                                           const gchar* property_name,
                                                           GError** error,
                                                           gpointer user_data);
static GVariant* _dbus_budgie_power_dialog_get_is_showing (BudgiePowerDialog* self);
static gboolean budgie_power_dialog_dbus_interface_set_property (GDBusConnection* connection,
                                                          const gchar* sender,
                                                          const gchar* object_path,
                                                          const gchar* interface_name,
                                                          const gchar* property_name,
                                                          GVariant* value,
                                                          GError** error,
                                                          gpointer user_data);
static void _dbus_budgie_power_dialog_set_is_showing (BudgiePowerDialog* self,
                                               GVariant* _value);
static void _dbus_budgie_power_dialog_toggle (GObject* _sender,
                                       gboolean show,
                                       gpointer* _data);
static void _budgie_power_dialog_unregister_object (gpointer user_data);
VALA_EXTERN GType budgie_logind_remote_proxy_get_type (void) G_GNUC_CONST ;
VALA_EXTERN guint budgie_logind_remote_register_object (void* object,
                                            GDBusConnection* connection,
                                            const gchar* path,
                                            GError** error);
VALA_EXTERN GType budgie_logind_remote_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (BudgieLogindRemote, g_object_unref)
VALA_EXTERN gchar* budgie_logind_remote_can_hibernate (BudgieLogindRemote* self,
                                           GError** error);
VALA_EXTERN void budgie_logind_remote_suspend (BudgieLogindRemote* self,
                                   gboolean interactive,
                                   GError** error);
VALA_EXTERN void budgie_logind_remote_hibernate (BudgieLogindRemote* self,
                                     gboolean interactive,
                                     GError** error);
static GType budgie_logind_remote_get_type_once (void);
static void budgie_logind_remote_proxy_g_signal (GDBusProxy* proxy,
                                          const gchar* sender_name,
                                          const gchar* signal_name,
                                          GVariant* parameters);
static gchar* budgie_logind_remote_proxy_can_hibernate (BudgieLogindRemote* self,
                                                 GError** error);
static void budgie_logind_remote_proxy_suspend (BudgieLogindRemote* self,
                                         gboolean interactive,
                                         GError** error);
static void budgie_logind_remote_proxy_hibernate (BudgieLogindRemote* self,
                                           gboolean interactive,
                                           GError** error);
static void budgie_logind_remote_proxy_budgie_logind_remote_interface_init (BudgieLogindRemoteIface* iface);
static void _dbus_budgie_logind_remote_can_hibernate (BudgieLogindRemote* self,
                                               GVariant* _parameters_,
                                               GDBusMethodInvocation* invocation);
static void _dbus_budgie_logind_remote_suspend (BudgieLogindRemote* self,
                                         GVariant* _parameters_,
                                         GDBusMethodInvocation* invocation);
static void _dbus_budgie_logind_remote_hibernate (BudgieLogindRemote* self,
                                           GVariant* _parameters_,
                                           GDBusMethodInvocation* invocation);
static void budgie_logind_remote_dbus_interface_method_call (GDBusConnection* connection,
                                                      const gchar* sender,
                                                      const gchar* object_path,
                                                      const gchar* interface_name,
                                                      const gchar* method_name,
                                                      GVariant* parameters,
                                                      GDBusMethodInvocation* invocation,
                                                      gpointer user_data);
static GVariant* budgie_logind_remote_dbus_interface_get_property (GDBusConnection* connection,
                                                            const gchar* sender,
                                                            const gchar* object_path,
                                                            const gchar* interface_name,
                                                            const gchar* property_name,
                                                            GError** error,
                                                            gpointer user_data);
static gboolean budgie_logind_remote_dbus_interface_set_property (GDBusConnection* connection,
                                                           const gchar* sender,
                                                           const gchar* object_path,
                                                           const gchar* interface_name,
                                                           const gchar* property_name,
                                                           GVariant* value,
                                                           GError** error,
                                                           gpointer user_data);
static void _budgie_logind_remote_unregister_object (gpointer user_data);
VALA_EXTERN GType budgie_session_manager_remote_proxy_get_type (void) G_GNUC_CONST ;
VALA_EXTERN guint budgie_session_manager_remote_register_object (void* object,
                                                     GDBusConnection* connection,
                                                     const gchar* path,
                                                     GError** error);
VALA_EXTERN GType budgie_session_manager_remote_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (BudgieSessionManagerRemote, g_object_unref)
VALA_EXTERN void budgie_session_manager_remote_Logout (BudgieSessionManagerRemote* self,
                                           guint mode,
                                           GError** error);
VALA_EXTERN void budgie_session_manager_remote_Reboot (BudgieSessionManagerRemote* self,
                                           GAsyncReadyCallback _callback_,
                                           gpointer _user_data_);
VALA_EXTERN void budgie_session_manager_remote_Reboot_finish (BudgieSessionManagerRemote* self,
                                                  GAsyncResult* _res_,
                                                  GError** error);
VALA_EXTERN void budgie_session_manager_remote_Shutdown (BudgieSessionManagerRemote* self,
                                             GAsyncReadyCallback _callback_,
                                             gpointer _user_data_);
VALA_EXTERN void budgie_session_manager_remote_Shutdown_finish (BudgieSessionManagerRemote* self,
                                                    GAsyncResult* _res_,
                                                    GError** error);
static GType budgie_session_manager_remote_get_type_once (void);
static void budgie_session_manager_remote_proxy_g_signal (GDBusProxy* proxy,
                                                   const gchar* sender_name,
                                                   const gchar* signal_name,
                                                   GVariant* parameters);
static void budgie_session_manager_remote_proxy_Logout (BudgieSessionManagerRemote* self,
                                                 guint mode,
                                                 GError** error);
static void _vala_g_async_ready_callback (GObject *source_object,
                                   GAsyncResult *res,
                                   void *user_data);
static void budgie_session_manager_remote_proxy_Reboot_async (BudgieSessionManagerRemote* self,
                                                       GAsyncReadyCallback _callback_,
                                                       gpointer _user_data_);
static void budgie_session_manager_remote_proxy_Reboot_finish (BudgieSessionManagerRemote* self,
                                                        GAsyncResult* _res_,
                                                        GError** error);
static void budgie_session_manager_remote_proxy_Shutdown_async (BudgieSessionManagerRemote* self,
                                                         GAsyncReadyCallback _callback_,
                                                         gpointer _user_data_);
static void budgie_session_manager_remote_proxy_Shutdown_finish (BudgieSessionManagerRemote* self,
                                                          GAsyncResult* _res_,
                                                          GError** error);
static void budgie_session_manager_remote_proxy_budgie_session_manager_remote_interface_init (BudgieSessionManagerRemoteIface* iface);
static void _dbus_budgie_session_manager_remote_Logout (BudgieSessionManagerRemote* self,
                                                 GVariant* _parameters_,
                                                 GDBusMethodInvocation* invocation);
static void _dbus_budgie_session_manager_remote_Reboot (BudgieSessionManagerRemote* self,
                                                 GVariant* _parameters_,
                                                 GDBusMethodInvocation* invocation);
static void _dbus_budgie_session_manager_remote_Reboot_ready (GObject * source_object,
                                                       GAsyncResult * _res_,
                                                       gpointer _user_data_);
static void _dbus_budgie_session_manager_remote_Shutdown (BudgieSessionManagerRemote* self,
                                                   GVariant* _parameters_,
                                                   GDBusMethodInvocation* invocation);
static void _dbus_budgie_session_manager_remote_Shutdown_ready (GObject * source_object,
                                                         GAsyncResult * _res_,
                                                         gpointer _user_data_);
static void budgie_session_manager_remote_dbus_interface_method_call (GDBusConnection* connection,
                                                               const gchar* sender,
                                                               const gchar* object_path,
                                                               const gchar* interface_name,
                                                               const gchar* method_name,
                                                               GVariant* parameters,
                                                               GDBusMethodInvocation* invocation,
                                                               gpointer user_data);
static GVariant* budgie_session_manager_remote_dbus_interface_get_property (GDBusConnection* connection,
                                                                     const gchar* sender,
                                                                     const gchar* object_path,
                                                                     const gchar* interface_name,
                                                                     const gchar* property_name,
                                                                     GError** error,
                                                                     gpointer user_data);
static gboolean budgie_session_manager_remote_dbus_interface_set_property (GDBusConnection* connection,
                                                                    const gchar* sender,
                                                                    const gchar* object_path,
                                                                    const gchar* interface_name,
                                                                    const gchar* property_name,
                                                                    GVariant* value,
                                                                    GError** error,
                                                                    gpointer user_data);
static void _budgie_session_manager_remote_unregister_object (gpointer user_data);
VALA_EXTERN GType budgie_screensaver_remote_proxy_get_type (void) G_GNUC_CONST ;
VALA_EXTERN guint budgie_screensaver_remote_register_object (void* object,
                                                 GDBusConnection* connection,
                                                 const gchar* path,
                                                 GError** error);
VALA_EXTERN GType budgie_screensaver_remote_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (BudgieScreensaverRemote, g_object_unref)
VALA_EXTERN void budgie_screensaver_remote_lock (BudgieScreensaverRemote* self,
                                     GError** error);
static GType budgie_screensaver_remote_get_type_once (void);
static void budgie_screensaver_remote_proxy_g_signal (GDBusProxy* proxy,
                                               const gchar* sender_name,
                                               const gchar* signal_name,
                                               GVariant* parameters);
static void budgie_screensaver_remote_proxy_lock (BudgieScreensaverRemote* self,
                                           GError** error);
static void budgie_screensaver_remote_proxy_budgie_screensaver_remote_interface_init (BudgieScreensaverRemoteIface* iface);
static void _dbus_budgie_screensaver_remote_lock (BudgieScreensaverRemote* self,
                                           GVariant* _parameters_,
                                           GDBusMethodInvocation* invocation);
static void budgie_screensaver_remote_dbus_interface_method_call (GDBusConnection* connection,
                                                           const gchar* sender,
                                                           const gchar* object_path,
                                                           const gchar* interface_name,
                                                           const gchar* method_name,
                                                           GVariant* parameters,
                                                           GDBusMethodInvocation* invocation,
                                                           gpointer user_data);
static GVariant* budgie_screensaver_remote_dbus_interface_get_property (GDBusConnection* connection,
                                                                 const gchar* sender,
                                                                 const gchar* object_path,
                                                                 const gchar* interface_name,
                                                                 const gchar* property_name,
                                                                 GError** error,
                                                                 gpointer user_data);
static gboolean budgie_screensaver_remote_dbus_interface_set_property (GDBusConnection* connection,
                                                                const gchar* sender,
                                                                const gchar* object_path,
                                                                const gchar* interface_name,
                                                                const gchar* property_name,
                                                                GVariant* value,
                                                                GError** error,
                                                                gpointer user_data);
static void _budgie_screensaver_remote_unregister_object (gpointer user_data);

static const GDBusArgInfo * const _budgie_power_dialog_dbus_arg_info_Toggle_in[] = {NULL};
static const GDBusArgInfo * const _budgie_power_dialog_dbus_arg_info_Toggle_out[] = {NULL};
static const GDBusMethodInfo _budgie_power_dialog_dbus_method_info_Toggle = {-1, "Toggle", (GDBusArgInfo **) (&_budgie_power_dialog_dbus_arg_info_Toggle_in), (GDBusArgInfo **) (&_budgie_power_dialog_dbus_arg_info_Toggle_out), NULL};
static const GDBusMethodInfo * const _budgie_power_dialog_dbus_method_info[] = {&_budgie_power_dialog_dbus_method_info_Toggle, NULL};
static const GDBusArgInfo _budgie_power_dialog_dbus_arg_info_toggle_show = {-1, "show", "b", NULL};
static const GDBusArgInfo * const _budgie_power_dialog_dbus_arg_info_toggle[] = {&_budgie_power_dialog_dbus_arg_info_toggle_show, NULL};
static const GDBusSignalInfo _budgie_power_dialog_dbus_signal_info_toggle = {-1, "Toggle", (GDBusArgInfo **) (&_budgie_power_dialog_dbus_arg_info_toggle), NULL};
static const GDBusSignalInfo * const _budgie_power_dialog_dbus_signal_info[] = {&_budgie_power_dialog_dbus_signal_info_toggle, NULL};
static const GDBusPropertyInfo _budgie_power_dialog_dbus_property_info_is_showing = {-1, "IsShowing", "b", G_DBUS_PROPERTY_INFO_FLAGS_READABLE | G_DBUS_PROPERTY_INFO_FLAGS_WRITABLE, NULL};
static const GDBusPropertyInfo * const _budgie_power_dialog_dbus_property_info[] = {&_budgie_power_dialog_dbus_property_info_is_showing, NULL};
static const GDBusInterfaceInfo _budgie_power_dialog_dbus_interface_info = {-1, "org.buddiesofbudgie.PowerDialog", (GDBusMethodInfo **) (&_budgie_power_dialog_dbus_method_info), (GDBusSignalInfo **) (&_budgie_power_dialog_dbus_signal_info), (GDBusPropertyInfo **) (&_budgie_power_dialog_dbus_property_info), NULL};
static const GDBusInterfaceVTable _budgie_power_dialog_dbus_interface_vtable = {budgie_power_dialog_dbus_interface_method_call, budgie_power_dialog_dbus_interface_get_property, budgie_power_dialog_dbus_interface_set_property};
static const GDBusArgInfo _budgie_logind_remote_dbus_arg_info_can_hibernate_result = {-1, "result", "s", NULL};
static const GDBusArgInfo * const _budgie_logind_remote_dbus_arg_info_can_hibernate_in[] = {NULL};
static const GDBusArgInfo * const _budgie_logind_remote_dbus_arg_info_can_hibernate_out[] = {&_budgie_logind_remote_dbus_arg_info_can_hibernate_result, NULL};
static const GDBusMethodInfo _budgie_logind_remote_dbus_method_info_can_hibernate = {-1, "CanHibernate", (GDBusArgInfo **) (&_budgie_logind_remote_dbus_arg_info_can_hibernate_in), (GDBusArgInfo **) (&_budgie_logind_remote_dbus_arg_info_can_hibernate_out), NULL};
static const GDBusArgInfo _budgie_logind_remote_dbus_arg_info_suspend_interactive = {-1, "interactive", "b", NULL};
static const GDBusArgInfo * const _budgie_logind_remote_dbus_arg_info_suspend_in[] = {&_budgie_logind_remote_dbus_arg_info_suspend_interactive, NULL};
static const GDBusArgInfo * const _budgie_logind_remote_dbus_arg_info_suspend_out[] = {NULL};
static const GDBusMethodInfo _budgie_logind_remote_dbus_method_info_suspend = {-1, "Suspend", (GDBusArgInfo **) (&_budgie_logind_remote_dbus_arg_info_suspend_in), (GDBusArgInfo **) (&_budgie_logind_remote_dbus_arg_info_suspend_out), NULL};
static const GDBusArgInfo _budgie_logind_remote_dbus_arg_info_hibernate_interactive = {-1, "interactive", "b", NULL};
static const GDBusArgInfo * const _budgie_logind_remote_dbus_arg_info_hibernate_in[] = {&_budgie_logind_remote_dbus_arg_info_hibernate_interactive, NULL};
static const GDBusArgInfo * const _budgie_logind_remote_dbus_arg_info_hibernate_out[] = {NULL};
static const GDBusMethodInfo _budgie_logind_remote_dbus_method_info_hibernate = {-1, "Hibernate", (GDBusArgInfo **) (&_budgie_logind_remote_dbus_arg_info_hibernate_in), (GDBusArgInfo **) (&_budgie_logind_remote_dbus_arg_info_hibernate_out), NULL};
static const GDBusMethodInfo * const _budgie_logind_remote_dbus_method_info[] = {&_budgie_logind_remote_dbus_method_info_can_hibernate, &_budgie_logind_remote_dbus_method_info_suspend, &_budgie_logind_remote_dbus_method_info_hibernate, NULL};
static const GDBusSignalInfo * const _budgie_logind_remote_dbus_signal_info[] = {NULL};
static const GDBusPropertyInfo * const _budgie_logind_remote_dbus_property_info[] = {NULL};
static const GDBusInterfaceInfo _budgie_logind_remote_dbus_interface_info = {-1, "org.freedesktop.login1.Manager", (GDBusMethodInfo **) (&_budgie_logind_remote_dbus_method_info), (GDBusSignalInfo **) (&_budgie_logind_remote_dbus_signal_info), (GDBusPropertyInfo **) (&_budgie_logind_remote_dbus_property_info), NULL};
static const GDBusInterfaceVTable _budgie_logind_remote_dbus_interface_vtable = {budgie_logind_remote_dbus_interface_method_call, budgie_logind_remote_dbus_interface_get_property, budgie_logind_remote_dbus_interface_set_property};
static const GDBusArgInfo _budgie_session_manager_remote_dbus_arg_info_Logout_mode = {-1, "mode", "u", NULL};
static const GDBusArgInfo * const _budgie_session_manager_remote_dbus_arg_info_Logout_in[] = {&_budgie_session_manager_remote_dbus_arg_info_Logout_mode, NULL};
static const GDBusArgInfo * const _budgie_session_manager_remote_dbus_arg_info_Logout_out[] = {NULL};
static const GDBusMethodInfo _budgie_session_manager_remote_dbus_method_info_Logout = {-1, "Logout", (GDBusArgInfo **) (&_budgie_session_manager_remote_dbus_arg_info_Logout_in), (GDBusArgInfo **) (&_budgie_session_manager_remote_dbus_arg_info_Logout_out), NULL};
static const GDBusArgInfo * const _budgie_session_manager_remote_dbus_arg_info_Reboot_in[] = {NULL};
static const GDBusArgInfo * const _budgie_session_manager_remote_dbus_arg_info_Reboot_out[] = {NULL};
static const GDBusMethodInfo _budgie_session_manager_remote_dbus_method_info_Reboot = {-1, "Reboot", (GDBusArgInfo **) (&_budgie_session_manager_remote_dbus_arg_info_Reboot_in), (GDBusArgInfo **) (&_budgie_session_manager_remote_dbus_arg_info_Reboot_out), NULL};
static const GDBusArgInfo * const _budgie_session_manager_remote_dbus_arg_info_Shutdown_in[] = {NULL};
static const GDBusArgInfo * const _budgie_session_manager_remote_dbus_arg_info_Shutdown_out[] = {NULL};
static const GDBusMethodInfo _budgie_session_manager_remote_dbus_method_info_Shutdown = {-1, "Shutdown", (GDBusArgInfo **) (&_budgie_session_manager_remote_dbus_arg_info_Shutdown_in), (GDBusArgInfo **) (&_budgie_session_manager_remote_dbus_arg_info_Shutdown_out), NULL};
static const GDBusMethodInfo * const _budgie_session_manager_remote_dbus_method_info[] = {&_budgie_session_manager_remote_dbus_method_info_Logout, &_budgie_session_manager_remote_dbus_method_info_Reboot, &_budgie_session_manager_remote_dbus_method_info_Shutdown, NULL};
static const GDBusSignalInfo * const _budgie_session_manager_remote_dbus_signal_info[] = {NULL};
static const GDBusPropertyInfo * const _budgie_session_manager_remote_dbus_property_info[] = {NULL};
static const GDBusInterfaceInfo _budgie_session_manager_remote_dbus_interface_info = {-1, "org.gnome.SessionManager", (GDBusMethodInfo **) (&_budgie_session_manager_remote_dbus_method_info), (GDBusSignalInfo **) (&_budgie_session_manager_remote_dbus_signal_info), (GDBusPropertyInfo **) (&_budgie_session_manager_remote_dbus_property_info), NULL};
static const GDBusInterfaceVTable _budgie_session_manager_remote_dbus_interface_vtable = {budgie_session_manager_remote_dbus_interface_method_call, budgie_session_manager_remote_dbus_interface_get_property, budgie_session_manager_remote_dbus_interface_set_property};
static const GDBusArgInfo * const _budgie_screensaver_remote_dbus_arg_info_lock_in[] = {NULL};
static const GDBusArgInfo * const _budgie_screensaver_remote_dbus_arg_info_lock_out[] = {NULL};
static const GDBusMethodInfo _budgie_screensaver_remote_dbus_method_info_lock = {-1, "Lock", (GDBusArgInfo **) (&_budgie_screensaver_remote_dbus_arg_info_lock_in), (GDBusArgInfo **) (&_budgie_screensaver_remote_dbus_arg_info_lock_out), NULL};
static const GDBusMethodInfo * const _budgie_screensaver_remote_dbus_method_info[] = {&_budgie_screensaver_remote_dbus_method_info_lock, NULL};
static const GDBusSignalInfo * const _budgie_screensaver_remote_dbus_signal_info[] = {NULL};
static const GDBusPropertyInfo * const _budgie_screensaver_remote_dbus_property_info[] = {NULL};
static const GDBusInterfaceInfo _budgie_screensaver_remote_dbus_interface_info = {-1, "org.buddiesofbudgie.BudgieScreenlock", (GDBusMethodInfo **) (&_budgie_screensaver_remote_dbus_method_info), (GDBusSignalInfo **) (&_budgie_screensaver_remote_dbus_signal_info), (GDBusPropertyInfo **) (&_budgie_screensaver_remote_dbus_property_info), NULL};
static const GDBusInterfaceVTable _budgie_screensaver_remote_dbus_interface_vtable = {budgie_screensaver_remote_dbus_interface_method_call, budgie_screensaver_remote_dbus_interface_get_property, budgie_screensaver_remote_dbus_interface_set_property};

static inline gpointer
budgie_power_dialog_get_instance_private (BudgiePowerDialog* self)
{
	return G_STRUCT_MEMBER_P (self, BudgiePowerDialog_private_offset);
}

void
budgie_power_dialog_Toggle (BudgiePowerDialog* self,
                            GError** error)
{
	gboolean _tmp0_;
	gboolean _tmp1_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->_is_showing;
	budgie_power_dialog_set_is_showing (self, !_tmp0_);
	_tmp1_ = self->priv->_is_showing;
	g_signal_emit (self, budgie_power_dialog_signals[BUDGIE_POWER_DIALOG_TOGGLE_SIGNAL], 0, _tmp1_);
}

BudgiePowerDialog*
budgie_power_dialog_construct (GType object_type)
{
	BudgiePowerDialog * self = NULL;
	self = (BudgiePowerDialog*) g_object_new (object_type, NULL);
	return self;
}

BudgiePowerDialog*
budgie_power_dialog_new (void)
{
	return budgie_power_dialog_construct (BUDGIE_TYPE_POWER_DIALOG);
}

gboolean
budgie_power_dialog_get_is_showing (BudgiePowerDialog* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_is_showing;
	return result;
}

void
budgie_power_dialog_set_is_showing (BudgiePowerDialog* self,
                                    gboolean value)
{
	gboolean old_value;
	g_return_if_fail (self != NULL);
	old_value = budgie_power_dialog_get_is_showing (self);
	if (old_value != value) {
		self->priv->_is_showing = value;
		g_object_notify_by_pspec ((GObject *) self, budgie_power_dialog_properties[BUDGIE_POWER_DIALOG_IS_SHOWING_PROPERTY]);
	}
}

static void
budgie_power_dialog_class_init (BudgiePowerDialogClass * klass,
                                gpointer klass_data)
{
	budgie_power_dialog_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &BudgiePowerDialog_private_offset);
	G_OBJECT_CLASS (klass)->get_property = _vala_budgie_power_dialog_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_budgie_power_dialog_set_property;
	G_OBJECT_CLASS (klass)->finalize = budgie_power_dialog_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), BUDGIE_POWER_DIALOG_IS_SHOWING_PROPERTY, budgie_power_dialog_properties[BUDGIE_POWER_DIALOG_IS_SHOWING_PROPERTY] = g_param_spec_boolean ("is-showing", "is-showing", "is-showing", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	budgie_power_dialog_signals[BUDGIE_POWER_DIALOG_TOGGLE_SIGNAL] = g_signal_new ("toggle", BUDGIE_TYPE_POWER_DIALOG, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__BOOLEAN, G_TYPE_NONE, 1, G_TYPE_BOOLEAN);
}

static void
budgie_power_dialog_instance_init (BudgiePowerDialog * self,
                                   gpointer klass)
{
	self->priv = budgie_power_dialog_get_instance_private (self);
	self->priv->_is_showing = FALSE;
}

static void
budgie_power_dialog_finalize (GObject * obj)
{
	BudgiePowerDialog * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, BUDGIE_TYPE_POWER_DIALOG, BudgiePowerDialog);
	G_OBJECT_CLASS (budgie_power_dialog_parent_class)->finalize (obj);
}

static GType
budgie_power_dialog_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (BudgiePowerDialogClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) budgie_power_dialog_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (BudgiePowerDialog), 0, (GInstanceInitFunc) budgie_power_dialog_instance_init, NULL };
	GType budgie_power_dialog_type_id;
	budgie_power_dialog_type_id = g_type_register_static (G_TYPE_OBJECT, "BudgiePowerDialog", &g_define_type_info, 0);
	g_type_set_qdata (budgie_power_dialog_type_id, g_quark_from_static_string ("vala-dbus-register-object"), (void*) budgie_power_dialog_register_object);
	BudgiePowerDialog_private_offset = g_type_add_instance_private (budgie_power_dialog_type_id, sizeof (BudgiePowerDialogPrivate));
	return budgie_power_dialog_type_id;
}

GType
budgie_power_dialog_get_type (void)
{
	static volatile gsize budgie_power_dialog_type_id__once = 0;
	if (g_once_init_enter (&budgie_power_dialog_type_id__once)) {
		GType budgie_power_dialog_type_id;
		budgie_power_dialog_type_id = budgie_power_dialog_get_type_once ();
		g_once_init_leave (&budgie_power_dialog_type_id__once, budgie_power_dialog_type_id);
	}
	return budgie_power_dialog_type_id__once;
}

static void
_vala_budgie_power_dialog_get_property (GObject * object,
                                        guint property_id,
                                        GValue * value,
                                        GParamSpec * pspec)
{
	BudgiePowerDialog * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, BUDGIE_TYPE_POWER_DIALOG, BudgiePowerDialog);
	switch (property_id) {
		case BUDGIE_POWER_DIALOG_IS_SHOWING_PROPERTY:
		g_value_set_boolean (value, budgie_power_dialog_get_is_showing (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_budgie_power_dialog_set_property (GObject * object,
                                        guint property_id,
                                        const GValue * value,
                                        GParamSpec * pspec)
{
	BudgiePowerDialog * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, BUDGIE_TYPE_POWER_DIALOG, BudgiePowerDialog);
	switch (property_id) {
		case BUDGIE_POWER_DIALOG_IS_SHOWING_PROPERTY:
		budgie_power_dialog_set_is_showing (self, g_value_get_boolean (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_dbus_budgie_power_dialog_Toggle (BudgiePowerDialog* self,
                                  GVariant* _parameters_,
                                  GDBusMethodInvocation* invocation)
{
	GError* error = NULL;
	GVariantIter _arguments_iter;
	GDBusMessage* _reply_message = NULL;
	GVariant* _reply;
	GVariantBuilder _reply_builder;
	g_variant_iter_init (&_arguments_iter, _parameters_);
	budgie_power_dialog_Toggle (self, &error);
	if (error) {
		g_dbus_method_invocation_take_error (invocation, error);
		return;
	}
	_reply_message = g_dbus_message_new_method_reply (g_dbus_method_invocation_get_message (invocation));
	g_variant_builder_init (&_reply_builder, G_VARIANT_TYPE_TUPLE);
	_reply = g_variant_builder_end (&_reply_builder);
	g_dbus_message_set_body (_reply_message, _reply);
	g_dbus_connection_send_message (g_dbus_method_invocation_get_connection (invocation), _reply_message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
	g_object_unref (invocation);
	g_object_unref (_reply_message);
}

static void
budgie_power_dialog_dbus_interface_method_call (GDBusConnection* connection,
                                                const gchar* sender,
                                                const gchar* object_path,
                                                const gchar* interface_name,
                                                const gchar* method_name,
                                                GVariant* parameters,
                                                GDBusMethodInvocation* invocation,
                                                gpointer user_data)
{
	gpointer* data;
	gpointer object;
	data = user_data;
	object = data[0];
	if (strcmp (method_name, "Toggle") == 0) {
		_dbus_budgie_power_dialog_Toggle (object, parameters, invocation);
	} else {
		g_object_unref (invocation);
	}
}

static GVariant*
_dbus_budgie_power_dialog_get_is_showing (BudgiePowerDialog* self)
{
	gboolean result;
	GVariant* _reply;
	result = budgie_power_dialog_get_is_showing (self);
	_reply = g_variant_new_boolean (result);
	return _reply;
}

static GVariant*
budgie_power_dialog_dbus_interface_get_property (GDBusConnection* connection,
                                                 const gchar* sender,
                                                 const gchar* object_path,
                                                 const gchar* interface_name,
                                                 const gchar* property_name,
                                                 GError** error,
                                                 gpointer user_data)
{
	gpointer* data;
	gpointer object;
	data = user_data;
	object = data[0];
	if (strcmp (property_name, "IsShowing") == 0) {
		return _dbus_budgie_power_dialog_get_is_showing (object);
	}
	return NULL;
}

static void
_dbus_budgie_power_dialog_set_is_showing (BudgiePowerDialog* self,
                                          GVariant* _value)
{
	gboolean value = FALSE;
	value = g_variant_get_boolean (_value);
	budgie_power_dialog_set_is_showing (self, value);
}

static gboolean
budgie_power_dialog_dbus_interface_set_property (GDBusConnection* connection,
                                                 const gchar* sender,
                                                 const gchar* object_path,
                                                 const gchar* interface_name,
                                                 const gchar* property_name,
                                                 GVariant* value,
                                                 GError** error,
                                                 gpointer user_data)
{
	gpointer* data;
	gpointer object;
	data = user_data;
	object = data[0];
	if (strcmp (property_name, "IsShowing") == 0) {
		_dbus_budgie_power_dialog_set_is_showing (object, value);
		return TRUE;
	}
	return FALSE;
}

static void
_dbus_budgie_power_dialog_toggle (GObject* _sender,
                                  gboolean show,
                                  gpointer* _data)
{
	GDBusConnection * _connection;
	const gchar * _path;
	GVariant *_arguments;
	GVariantBuilder _arguments_builder;
	_connection = _data[1];
	_path = _data[2];
	g_variant_builder_init (&_arguments_builder, G_VARIANT_TYPE_TUPLE);
	g_variant_builder_add_value (&_arguments_builder, g_variant_new_boolean (show));
	_arguments = g_variant_builder_end (&_arguments_builder);
	g_dbus_connection_emit_signal (_connection, NULL, _path, "org.buddiesofbudgie.PowerDialog", "Toggle", _arguments, NULL);
}

guint
budgie_power_dialog_register_object (gpointer object,
                                     GDBusConnection* connection,
                                     const gchar* path,
                                     GError** error)
{
	guint result;
	gpointer *data;
	data = g_new (gpointer, 3);
	data[0] = g_object_ref (object);
	data[1] = g_object_ref (connection);
	data[2] = g_strdup (path);
	result = g_dbus_connection_register_object (connection, path, (GDBusInterfaceInfo *) (&_budgie_power_dialog_dbus_interface_info), &_budgie_power_dialog_dbus_interface_vtable, data, _budgie_power_dialog_unregister_object, error);
	if (!result) {
		return 0;
	}
	g_signal_connect (object, "toggle", (GCallback) _dbus_budgie_power_dialog_toggle, data);
	return result;
}

static void
_budgie_power_dialog_unregister_object (gpointer user_data)
{
	gpointer* data;
	data = user_data;
	g_signal_handlers_disconnect_by_func (data[0], _dbus_budgie_power_dialog_toggle, data);
	g_object_unref (data[0]);
	g_object_unref (data[1]);
	g_free (data[2]);
	g_free (data);
}

gchar*
budgie_logind_remote_can_hibernate (BudgieLogindRemote* self,
                                    GError** error)
{
	BudgieLogindRemoteIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = BUDGIE_LOGIND_REMOTE_GET_INTERFACE (self);
	if (_iface_->can_hibernate) {
		return _iface_->can_hibernate (self, error);
	}
	return NULL;
}

void
budgie_logind_remote_suspend (BudgieLogindRemote* self,
                              gboolean interactive,
                              GError** error)
{
	BudgieLogindRemoteIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = BUDGIE_LOGIND_REMOTE_GET_INTERFACE (self);
	if (_iface_->suspend) {
		_iface_->suspend (self, interactive, error);
	}
}

void
budgie_logind_remote_hibernate (BudgieLogindRemote* self,
                                gboolean interactive,
                                GError** error)
{
	BudgieLogindRemoteIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = BUDGIE_LOGIND_REMOTE_GET_INTERFACE (self);
	if (_iface_->hibernate) {
		_iface_->hibernate (self, interactive, error);
	}
}

static void
budgie_logind_remote_default_init (BudgieLogindRemoteIface * iface,
                                   gpointer iface_data)
{
}

static GType
budgie_logind_remote_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (BudgieLogindRemoteIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) budgie_logind_remote_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType budgie_logind_remote_type_id;
	budgie_logind_remote_type_id = g_type_register_static (G_TYPE_INTERFACE, "BudgieLogindRemote", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (budgie_logind_remote_type_id, G_TYPE_OBJECT);
	g_type_set_qdata (budgie_logind_remote_type_id, g_quark_from_static_string ("vala-dbus-proxy-type"), (void*) budgie_logind_remote_proxy_get_type);
	g_type_set_qdata (budgie_logind_remote_type_id, g_quark_from_static_string ("vala-dbus-interface-name"), "org.freedesktop.login1.Manager");
	g_type_set_qdata (budgie_logind_remote_type_id, g_quark_from_static_string ("vala-dbus-interface-info"), (void*) (&_budgie_logind_remote_dbus_interface_info));
	g_type_set_qdata (budgie_logind_remote_type_id, g_quark_from_static_string ("vala-dbus-register-object"), (void*) budgie_logind_remote_register_object);
	return budgie_logind_remote_type_id;
}

GType
budgie_logind_remote_get_type (void)
{
	static volatile gsize budgie_logind_remote_type_id__once = 0;
	if (g_once_init_enter (&budgie_logind_remote_type_id__once)) {
		GType budgie_logind_remote_type_id;
		budgie_logind_remote_type_id = budgie_logind_remote_get_type_once ();
		g_once_init_leave (&budgie_logind_remote_type_id__once, budgie_logind_remote_type_id);
	}
	return budgie_logind_remote_type_id__once;
}

G_DEFINE_TYPE_EXTENDED (BudgieLogindRemoteProxy, budgie_logind_remote_proxy, G_TYPE_DBUS_PROXY, 0, G_IMPLEMENT_INTERFACE (BUDGIE_TYPE_LOGIND_REMOTE, budgie_logind_remote_proxy_budgie_logind_remote_interface_init) )
static void
budgie_logind_remote_proxy_class_init (BudgieLogindRemoteProxyClass* klass)
{
	G_DBUS_PROXY_CLASS (klass)->g_signal = budgie_logind_remote_proxy_g_signal;
}

static void
budgie_logind_remote_proxy_g_signal (GDBusProxy* proxy,
                                     const gchar* sender_name,
                                     const gchar* signal_name,
                                     GVariant* parameters)
{
}

static void
budgie_logind_remote_proxy_init (BudgieLogindRemoteProxy* self)
{
	g_dbus_proxy_set_interface_info (G_DBUS_PROXY (self), (GDBusInterfaceInfo *) (&_budgie_logind_remote_dbus_interface_info));
}

static gchar*
budgie_logind_remote_proxy_can_hibernate (BudgieLogindRemote* self,
                                          GError** error)
{
	GDBusMessage *_message;
	GVariant *_arguments;
	GVariantBuilder _arguments_builder;
	GDBusMessage *_reply_message;
	GVariant *_reply;
	GVariantIter _reply_iter;
	gchar* _result = NULL;
	GVariant* _tmp0_;
	G_DBUS_ERROR;
	G_IO_ERROR;
	_message = g_dbus_message_new_method_call (g_dbus_proxy_get_name ((GDBusProxy *) self), g_dbus_proxy_get_object_path ((GDBusProxy *) self), "org.freedesktop.login1.Manager", "CanHibernate");
	g_variant_builder_init (&_arguments_builder, G_VARIANT_TYPE_TUPLE);
	_arguments = g_variant_builder_end (&_arguments_builder);
	g_dbus_message_set_body (_message, _arguments);
	_reply_message = g_dbus_connection_send_message_with_reply_sync (g_dbus_proxy_get_connection ((GDBusProxy *) self), _message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, g_dbus_proxy_get_default_timeout ((GDBusProxy *) self), NULL, NULL, error);
	g_object_unref (_message);
	if (!_reply_message) {
		return NULL;
	}
	if (g_dbus_message_to_gerror (_reply_message, error)) {
		g_object_unref (_reply_message);
		return NULL;
	}
	_reply = g_dbus_message_get_body (_reply_message);
	g_variant_iter_init (&_reply_iter, _reply);
	_tmp0_ = g_variant_iter_next_value (&_reply_iter);
	_result = g_variant_dup_string (_tmp0_, NULL);
	g_variant_unref (_tmp0_);
	g_object_unref (_reply_message);
	return _result;
}

static void
budgie_logind_remote_proxy_suspend (BudgieLogindRemote* self,
                                    gboolean interactive,
                                    GError** error)
{
	GDBusMessage *_message;
	GVariant *_arguments;
	GVariantBuilder _arguments_builder;
	GDBusMessage *_reply_message;
	G_DBUS_ERROR;
	G_IO_ERROR;
	_message = g_dbus_message_new_method_call (g_dbus_proxy_get_name ((GDBusProxy *) self), g_dbus_proxy_get_object_path ((GDBusProxy *) self), "org.freedesktop.login1.Manager", "Suspend");
	g_variant_builder_init (&_arguments_builder, G_VARIANT_TYPE_TUPLE);
	g_variant_builder_add_value (&_arguments_builder, g_variant_new_boolean (interactive));
	_arguments = g_variant_builder_end (&_arguments_builder);
	g_dbus_message_set_body (_message, _arguments);
	_reply_message = g_dbus_connection_send_message_with_reply_sync (g_dbus_proxy_get_connection ((GDBusProxy *) self), _message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, g_dbus_proxy_get_default_timeout ((GDBusProxy *) self), NULL, NULL, error);
	g_object_unref (_message);
	if (!_reply_message) {
		return;
	}
	if (g_dbus_message_to_gerror (_reply_message, error)) {
		g_object_unref (_reply_message);
		return;
	}
	g_object_unref (_reply_message);
}

static void
budgie_logind_remote_proxy_hibernate (BudgieLogindRemote* self,
                                      gboolean interactive,
                                      GError** error)
{
	GDBusMessage *_message;
	GVariant *_arguments;
	GVariantBuilder _arguments_builder;
	GDBusMessage *_reply_message;
	G_DBUS_ERROR;
	G_IO_ERROR;
	_message = g_dbus_message_new_method_call (g_dbus_proxy_get_name ((GDBusProxy *) self), g_dbus_proxy_get_object_path ((GDBusProxy *) self), "org.freedesktop.login1.Manager", "Hibernate");
	g_variant_builder_init (&_arguments_builder, G_VARIANT_TYPE_TUPLE);
	g_variant_builder_add_value (&_arguments_builder, g_variant_new_boolean (interactive));
	_arguments = g_variant_builder_end (&_arguments_builder);
	g_dbus_message_set_body (_message, _arguments);
	_reply_message = g_dbus_connection_send_message_with_reply_sync (g_dbus_proxy_get_connection ((GDBusProxy *) self), _message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, g_dbus_proxy_get_default_timeout ((GDBusProxy *) self), NULL, NULL, error);
	g_object_unref (_message);
	if (!_reply_message) {
		return;
	}
	if (g_dbus_message_to_gerror (_reply_message, error)) {
		g_object_unref (_reply_message);
		return;
	}
	g_object_unref (_reply_message);
}

static void
budgie_logind_remote_proxy_budgie_logind_remote_interface_init (BudgieLogindRemoteIface* iface)
{
	iface->can_hibernate = budgie_logind_remote_proxy_can_hibernate;
	iface->suspend = budgie_logind_remote_proxy_suspend;
	iface->hibernate = budgie_logind_remote_proxy_hibernate;
}

static void
_dbus_budgie_logind_remote_can_hibernate (BudgieLogindRemote* self,
                                          GVariant* _parameters_,
                                          GDBusMethodInvocation* invocation)
{
	GError* error = NULL;
	GVariantIter _arguments_iter;
	GDBusMessage* _reply_message = NULL;
	GVariant* _reply;
	GVariantBuilder _reply_builder;
	gchar* result;
	g_variant_iter_init (&_arguments_iter, _parameters_);
	result = budgie_logind_remote_can_hibernate (self, &error);
	if (error) {
		g_dbus_method_invocation_take_error (invocation, error);
		return;
	}
	_reply_message = g_dbus_message_new_method_reply (g_dbus_method_invocation_get_message (invocation));
	g_variant_builder_init (&_reply_builder, G_VARIANT_TYPE_TUPLE);
	g_variant_builder_add_value (&_reply_builder, g_variant_new_string (result));
	_g_free0 (result);
	_reply = g_variant_builder_end (&_reply_builder);
	g_dbus_message_set_body (_reply_message, _reply);
	g_dbus_connection_send_message (g_dbus_method_invocation_get_connection (invocation), _reply_message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
	g_object_unref (invocation);
	g_object_unref (_reply_message);
}

static void
_dbus_budgie_logind_remote_suspend (BudgieLogindRemote* self,
                                    GVariant* _parameters_,
                                    GDBusMethodInvocation* invocation)
{
	GError* error = NULL;
	GVariantIter _arguments_iter;
	gboolean interactive = FALSE;
	GVariant* _tmp1_;
	GDBusMessage* _reply_message = NULL;
	GVariant* _reply;
	GVariantBuilder _reply_builder;
	g_variant_iter_init (&_arguments_iter, _parameters_);
	_tmp1_ = g_variant_iter_next_value (&_arguments_iter);
	interactive = g_variant_get_boolean (_tmp1_);
	g_variant_unref (_tmp1_);
	budgie_logind_remote_suspend (self, interactive, &error);
	if (error) {
		g_dbus_method_invocation_take_error (invocation, error);
		return;
	}
	_reply_message = g_dbus_message_new_method_reply (g_dbus_method_invocation_get_message (invocation));
	g_variant_builder_init (&_reply_builder, G_VARIANT_TYPE_TUPLE);
	_reply = g_variant_builder_end (&_reply_builder);
	g_dbus_message_set_body (_reply_message, _reply);
	g_dbus_connection_send_message (g_dbus_method_invocation_get_connection (invocation), _reply_message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
	g_object_unref (invocation);
	g_object_unref (_reply_message);
}

static void
_dbus_budgie_logind_remote_hibernate (BudgieLogindRemote* self,
                                      GVariant* _parameters_,
                                      GDBusMethodInvocation* invocation)
{
	GError* error = NULL;
	GVariantIter _arguments_iter;
	gboolean interactive = FALSE;
	GVariant* _tmp2_;
	GDBusMessage* _reply_message = NULL;
	GVariant* _reply;
	GVariantBuilder _reply_builder;
	g_variant_iter_init (&_arguments_iter, _parameters_);
	_tmp2_ = g_variant_iter_next_value (&_arguments_iter);
	interactive = g_variant_get_boolean (_tmp2_);
	g_variant_unref (_tmp2_);
	budgie_logind_remote_hibernate (self, interactive, &error);
	if (error) {
		g_dbus_method_invocation_take_error (invocation, error);
		return;
	}
	_reply_message = g_dbus_message_new_method_reply (g_dbus_method_invocation_get_message (invocation));
	g_variant_builder_init (&_reply_builder, G_VARIANT_TYPE_TUPLE);
	_reply = g_variant_builder_end (&_reply_builder);
	g_dbus_message_set_body (_reply_message, _reply);
	g_dbus_connection_send_message (g_dbus_method_invocation_get_connection (invocation), _reply_message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
	g_object_unref (invocation);
	g_object_unref (_reply_message);
}

static void
budgie_logind_remote_dbus_interface_method_call (GDBusConnection* connection,
                                                 const gchar* sender,
                                                 const gchar* object_path,
                                                 const gchar* interface_name,
                                                 const gchar* method_name,
                                                 GVariant* parameters,
                                                 GDBusMethodInvocation* invocation,
                                                 gpointer user_data)
{
	gpointer* data;
	gpointer object;
	data = user_data;
	object = data[0];
	if (strcmp (method_name, "CanHibernate") == 0) {
		_dbus_budgie_logind_remote_can_hibernate (object, parameters, invocation);
	} else if (strcmp (method_name, "Suspend") == 0) {
		_dbus_budgie_logind_remote_suspend (object, parameters, invocation);
	} else if (strcmp (method_name, "Hibernate") == 0) {
		_dbus_budgie_logind_remote_hibernate (object, parameters, invocation);
	} else {
		g_object_unref (invocation);
	}
}

static GVariant*
budgie_logind_remote_dbus_interface_get_property (GDBusConnection* connection,
                                                  const gchar* sender,
                                                  const gchar* object_path,
                                                  const gchar* interface_name,
                                                  const gchar* property_name,
                                                  GError** error,
                                                  gpointer user_data)
{
	gpointer* data;
	gpointer object;
	data = user_data;
	object = data[0];
	return NULL;
}

static gboolean
budgie_logind_remote_dbus_interface_set_property (GDBusConnection* connection,
                                                  const gchar* sender,
                                                  const gchar* object_path,
                                                  const gchar* interface_name,
                                                  const gchar* property_name,
                                                  GVariant* value,
                                                  GError** error,
                                                  gpointer user_data)
{
	gpointer* data;
	gpointer object;
	data = user_data;
	object = data[0];
	return FALSE;
}

guint
budgie_logind_remote_register_object (gpointer object,
                                      GDBusConnection* connection,
                                      const gchar* path,
                                      GError** error)
{
	guint result;
	gpointer *data;
	data = g_new (gpointer, 3);
	data[0] = g_object_ref (object);
	data[1] = g_object_ref (connection);
	data[2] = g_strdup (path);
	result = g_dbus_connection_register_object (connection, path, (GDBusInterfaceInfo *) (&_budgie_logind_remote_dbus_interface_info), &_budgie_logind_remote_dbus_interface_vtable, data, _budgie_logind_remote_unregister_object, error);
	if (!result) {
		return 0;
	}
	return result;
}

static void
_budgie_logind_remote_unregister_object (gpointer user_data)
{
	gpointer* data;
	data = user_data;
	g_object_unref (data[0]);
	g_object_unref (data[1]);
	g_free (data[2]);
	g_free (data);
}

void
budgie_session_manager_remote_Logout (BudgieSessionManagerRemote* self,
                                      guint mode,
                                      GError** error)
{
	BudgieSessionManagerRemoteIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = BUDGIE_SESSION_MANAGER_REMOTE_GET_INTERFACE (self);
	if (_iface_->Logout) {
		_iface_->Logout (self, mode, error);
	}
}

void
budgie_session_manager_remote_Reboot (BudgieSessionManagerRemote* self,
                                      GAsyncReadyCallback _callback_,
                                      gpointer _user_data_)
{
	BudgieSessionManagerRemoteIface* _iface_;
	_iface_ = BUDGIE_SESSION_MANAGER_REMOTE_GET_INTERFACE (self);
	if (_iface_->Reboot) {
		_iface_->Reboot (self, _callback_, _user_data_);
	}
}

void
budgie_session_manager_remote_Reboot_finish (BudgieSessionManagerRemote* self,
                                             GAsyncResult* _res_,
                                             GError** error)
{
	BudgieSessionManagerRemoteIface* _iface_;
	_iface_ = BUDGIE_SESSION_MANAGER_REMOTE_GET_INTERFACE (self);
	if (_iface_->Reboot_finish) {
		_iface_->Reboot_finish (self, _res_, error);
	}
}

void
budgie_session_manager_remote_Shutdown (BudgieSessionManagerRemote* self,
                                        GAsyncReadyCallback _callback_,
                                        gpointer _user_data_)
{
	BudgieSessionManagerRemoteIface* _iface_;
	_iface_ = BUDGIE_SESSION_MANAGER_REMOTE_GET_INTERFACE (self);
	if (_iface_->Shutdown) {
		_iface_->Shutdown (self, _callback_, _user_data_);
	}
}

void
budgie_session_manager_remote_Shutdown_finish (BudgieSessionManagerRemote* self,
                                               GAsyncResult* _res_,
                                               GError** error)
{
	BudgieSessionManagerRemoteIface* _iface_;
	_iface_ = BUDGIE_SESSION_MANAGER_REMOTE_GET_INTERFACE (self);
	if (_iface_->Shutdown_finish) {
		_iface_->Shutdown_finish (self, _res_, error);
	}
}

static void
budgie_session_manager_remote_default_init (BudgieSessionManagerRemoteIface * iface,
                                            gpointer iface_data)
{
}

static GType
budgie_session_manager_remote_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (BudgieSessionManagerRemoteIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) budgie_session_manager_remote_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType budgie_session_manager_remote_type_id;
	budgie_session_manager_remote_type_id = g_type_register_static (G_TYPE_INTERFACE, "BudgieSessionManagerRemote", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (budgie_session_manager_remote_type_id, G_TYPE_OBJECT);
	g_type_set_qdata (budgie_session_manager_remote_type_id, g_quark_from_static_string ("vala-dbus-proxy-type"), (void*) budgie_session_manager_remote_proxy_get_type);
	g_type_set_qdata (budgie_session_manager_remote_type_id, g_quark_from_static_string ("vala-dbus-interface-name"), "org.gnome.SessionManager");
	g_type_set_qdata (budgie_session_manager_remote_type_id, g_quark_from_static_string ("vala-dbus-interface-info"), (void*) (&_budgie_session_manager_remote_dbus_interface_info));
	g_type_set_qdata (budgie_session_manager_remote_type_id, g_quark_from_static_string ("vala-dbus-register-object"), (void*) budgie_session_manager_remote_register_object);
	return budgie_session_manager_remote_type_id;
}

GType
budgie_session_manager_remote_get_type (void)
{
	static volatile gsize budgie_session_manager_remote_type_id__once = 0;
	if (g_once_init_enter (&budgie_session_manager_remote_type_id__once)) {
		GType budgie_session_manager_remote_type_id;
		budgie_session_manager_remote_type_id = budgie_session_manager_remote_get_type_once ();
		g_once_init_leave (&budgie_session_manager_remote_type_id__once, budgie_session_manager_remote_type_id);
	}
	return budgie_session_manager_remote_type_id__once;
}

G_DEFINE_TYPE_EXTENDED (BudgieSessionManagerRemoteProxy, budgie_session_manager_remote_proxy, G_TYPE_DBUS_PROXY, 0, G_IMPLEMENT_INTERFACE (BUDGIE_TYPE_SESSION_MANAGER_REMOTE, budgie_session_manager_remote_proxy_budgie_session_manager_remote_interface_init) )
static void
budgie_session_manager_remote_proxy_class_init (BudgieSessionManagerRemoteProxyClass* klass)
{
	G_DBUS_PROXY_CLASS (klass)->g_signal = budgie_session_manager_remote_proxy_g_signal;
}

static void
budgie_session_manager_remote_proxy_g_signal (GDBusProxy* proxy,
                                              const gchar* sender_name,
                                              const gchar* signal_name,
                                              GVariant* parameters)
{
}

static void
budgie_session_manager_remote_proxy_init (BudgieSessionManagerRemoteProxy* self)
{
	g_dbus_proxy_set_interface_info (G_DBUS_PROXY (self), (GDBusInterfaceInfo *) (&_budgie_session_manager_remote_dbus_interface_info));
}

static void
budgie_session_manager_remote_proxy_Logout (BudgieSessionManagerRemote* self,
                                            guint mode,
                                            GError** error)
{
	GDBusMessage *_message;
	GVariant *_arguments;
	GVariantBuilder _arguments_builder;
	GDBusMessage *_reply_message;
	G_DBUS_ERROR;
	G_IO_ERROR;
	_message = g_dbus_message_new_method_call (g_dbus_proxy_get_name ((GDBusProxy *) self), g_dbus_proxy_get_object_path ((GDBusProxy *) self), "org.gnome.SessionManager", "Logout");
	g_variant_builder_init (&_arguments_builder, G_VARIANT_TYPE_TUPLE);
	g_variant_builder_add_value (&_arguments_builder, g_variant_new_uint32 (mode));
	_arguments = g_variant_builder_end (&_arguments_builder);
	g_dbus_message_set_body (_message, _arguments);
	_reply_message = g_dbus_connection_send_message_with_reply_sync (g_dbus_proxy_get_connection ((GDBusProxy *) self), _message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, g_dbus_proxy_get_default_timeout ((GDBusProxy *) self), NULL, NULL, error);
	g_object_unref (_message);
	if (!_reply_message) {
		return;
	}
	if (g_dbus_message_to_gerror (_reply_message, error)) {
		g_object_unref (_reply_message);
		return;
	}
	g_object_unref (_reply_message);
}

static void
_vala_g_async_ready_callback (GObject *source_object,
                              GAsyncResult *res,
                              void *user_data)
{
	g_task_return_pointer (user_data, g_object_ref (res), g_object_unref);
	g_object_unref (user_data);
}

static void
budgie_session_manager_remote_proxy_Reboot_async (BudgieSessionManagerRemote* self,
                                                  GAsyncReadyCallback _callback_,
                                                  gpointer _user_data_)
{
	GDBusMessage *_message;
	GVariant *_arguments;
	GVariantBuilder _arguments_builder;
	_message = g_dbus_message_new_method_call (g_dbus_proxy_get_name ((GDBusProxy *) self), g_dbus_proxy_get_object_path ((GDBusProxy *) self), "org.gnome.SessionManager", "Reboot");
	g_variant_builder_init (&_arguments_builder, G_VARIANT_TYPE_TUPLE);
	_arguments = g_variant_builder_end (&_arguments_builder);
	g_dbus_message_set_body (_message, _arguments);
	if (_callback_ != NULL) {
		g_dbus_connection_send_message_with_reply (g_dbus_proxy_get_connection ((GDBusProxy *) self), _message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, g_dbus_proxy_get_default_timeout ((GDBusProxy *) self), NULL, NULL, _vala_g_async_ready_callback, g_task_new ((GObject *) self, NULL, _callback_, _user_data_));
	} else {
		g_dbus_message_set_flags (_message, G_DBUS_MESSAGE_FLAGS_NO_REPLY_EXPECTED);
		g_dbus_connection_send_message (g_dbus_proxy_get_connection ((GDBusProxy *) self), _message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
	}
	g_object_unref (_message);
}

static void
budgie_session_manager_remote_proxy_Reboot_finish (BudgieSessionManagerRemote* self,
                                                   GAsyncResult* _res_,
                                                   GError** error)
{
	GAsyncResult *_inner_res;
	GDBusMessage *_reply_message;
	_inner_res = g_task_propagate_pointer ((GTask *) _res_, NULL);
	_reply_message = g_dbus_connection_send_message_with_reply_finish (g_dbus_proxy_get_connection ((GDBusProxy *) self), _inner_res, error);
	g_object_unref (_inner_res);
	if (!_reply_message) {
		return;
	}
	if (g_dbus_message_to_gerror (_reply_message, error)) {
		g_object_unref (_reply_message);
		return;
	}
	g_object_unref (_reply_message);
}

static void
budgie_session_manager_remote_proxy_Shutdown_async (BudgieSessionManagerRemote* self,
                                                    GAsyncReadyCallback _callback_,
                                                    gpointer _user_data_)
{
	GDBusMessage *_message;
	GVariant *_arguments;
	GVariantBuilder _arguments_builder;
	_message = g_dbus_message_new_method_call (g_dbus_proxy_get_name ((GDBusProxy *) self), g_dbus_proxy_get_object_path ((GDBusProxy *) self), "org.gnome.SessionManager", "Shutdown");
	g_variant_builder_init (&_arguments_builder, G_VARIANT_TYPE_TUPLE);
	_arguments = g_variant_builder_end (&_arguments_builder);
	g_dbus_message_set_body (_message, _arguments);
	if (_callback_ != NULL) {
		g_dbus_connection_send_message_with_reply (g_dbus_proxy_get_connection ((GDBusProxy *) self), _message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, g_dbus_proxy_get_default_timeout ((GDBusProxy *) self), NULL, NULL, _vala_g_async_ready_callback, g_task_new ((GObject *) self, NULL, _callback_, _user_data_));
	} else {
		g_dbus_message_set_flags (_message, G_DBUS_MESSAGE_FLAGS_NO_REPLY_EXPECTED);
		g_dbus_connection_send_message (g_dbus_proxy_get_connection ((GDBusProxy *) self), _message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
	}
	g_object_unref (_message);
}

static void
budgie_session_manager_remote_proxy_Shutdown_finish (BudgieSessionManagerRemote* self,
                                                     GAsyncResult* _res_,
                                                     GError** error)
{
	GAsyncResult *_inner_res;
	GDBusMessage *_reply_message;
	_inner_res = g_task_propagate_pointer ((GTask *) _res_, NULL);
	_reply_message = g_dbus_connection_send_message_with_reply_finish (g_dbus_proxy_get_connection ((GDBusProxy *) self), _inner_res, error);
	g_object_unref (_inner_res);
	if (!_reply_message) {
		return;
	}
	if (g_dbus_message_to_gerror (_reply_message, error)) {
		g_object_unref (_reply_message);
		return;
	}
	g_object_unref (_reply_message);
}

static void
budgie_session_manager_remote_proxy_budgie_session_manager_remote_interface_init (BudgieSessionManagerRemoteIface* iface)
{
	iface->Logout = budgie_session_manager_remote_proxy_Logout;
	iface->Reboot = budgie_session_manager_remote_proxy_Reboot_async;
	iface->Reboot_finish = budgie_session_manager_remote_proxy_Reboot_finish;
	iface->Shutdown = budgie_session_manager_remote_proxy_Shutdown_async;
	iface->Shutdown_finish = budgie_session_manager_remote_proxy_Shutdown_finish;
}

static void
_dbus_budgie_session_manager_remote_Logout (BudgieSessionManagerRemote* self,
                                            GVariant* _parameters_,
                                            GDBusMethodInvocation* invocation)
{
	GError* error = NULL;
	GVariantIter _arguments_iter;
	guint mode = 0U;
	GVariant* _tmp3_;
	GDBusMessage* _reply_message = NULL;
	GVariant* _reply;
	GVariantBuilder _reply_builder;
	g_variant_iter_init (&_arguments_iter, _parameters_);
	_tmp3_ = g_variant_iter_next_value (&_arguments_iter);
	mode = g_variant_get_uint32 (_tmp3_);
	g_variant_unref (_tmp3_);
	budgie_session_manager_remote_Logout (self, mode, &error);
	if (error) {
		g_dbus_method_invocation_take_error (invocation, error);
		return;
	}
	_reply_message = g_dbus_message_new_method_reply (g_dbus_method_invocation_get_message (invocation));
	g_variant_builder_init (&_reply_builder, G_VARIANT_TYPE_TUPLE);
	_reply = g_variant_builder_end (&_reply_builder);
	g_dbus_message_set_body (_reply_message, _reply);
	g_dbus_connection_send_message (g_dbus_method_invocation_get_connection (invocation), _reply_message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
	g_object_unref (invocation);
	g_object_unref (_reply_message);
}

static void
_dbus_budgie_session_manager_remote_Reboot (BudgieSessionManagerRemote* self,
                                            GVariant* _parameters_,
                                            GDBusMethodInvocation* invocation)
{
	GVariantIter _arguments_iter;
	budgie_session_manager_remote_RebootReadyData* _ready_data;
	g_variant_iter_init (&_arguments_iter, _parameters_);
	_ready_data = g_slice_new0 (budgie_session_manager_remote_RebootReadyData);
	_ready_data->_invocation_ = invocation;
	budgie_session_manager_remote_Reboot (self, (GAsyncReadyCallback) _dbus_budgie_session_manager_remote_Reboot_ready, _ready_data);
}

static void
_dbus_budgie_session_manager_remote_Reboot_ready (GObject * source_object,
                                                  GAsyncResult * _res_,
                                                  gpointer _user_data_)
{
	budgie_session_manager_remote_RebootReadyData* _ready_data;
	GDBusMethodInvocation* invocation;
	GError* error = NULL;
	GDBusMessage* _reply_message = NULL;
	GVariant* _reply;
	GVariantBuilder _reply_builder;
	_ready_data = _user_data_;
	invocation = _ready_data->_invocation_;
	budgie_session_manager_remote_Reboot_finish ((BudgieSessionManagerRemote*) source_object, _res_, &error);
	if (error) {
		g_dbus_method_invocation_take_error (invocation, error);
		goto _error;
	}
	_reply_message = g_dbus_message_new_method_reply (g_dbus_method_invocation_get_message (invocation));
	g_variant_builder_init (&_reply_builder, G_VARIANT_TYPE_TUPLE);
	_reply = g_variant_builder_end (&_reply_builder);
	g_dbus_message_set_body (_reply_message, _reply);
	g_dbus_connection_send_message (g_dbus_method_invocation_get_connection (invocation), _reply_message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
	g_object_unref (invocation);
	g_object_unref (_reply_message);
	_error:
	g_slice_free (budgie_session_manager_remote_RebootReadyData, _ready_data);
}

static void
_dbus_budgie_session_manager_remote_Shutdown (BudgieSessionManagerRemote* self,
                                              GVariant* _parameters_,
                                              GDBusMethodInvocation* invocation)
{
	GVariantIter _arguments_iter;
	budgie_session_manager_remote_ShutdownReadyData* _ready_data;
	g_variant_iter_init (&_arguments_iter, _parameters_);
	_ready_data = g_slice_new0 (budgie_session_manager_remote_ShutdownReadyData);
	_ready_data->_invocation_ = invocation;
	budgie_session_manager_remote_Shutdown (self, (GAsyncReadyCallback) _dbus_budgie_session_manager_remote_Shutdown_ready, _ready_data);
}

static void
_dbus_budgie_session_manager_remote_Shutdown_ready (GObject * source_object,
                                                    GAsyncResult * _res_,
                                                    gpointer _user_data_)
{
	budgie_session_manager_remote_ShutdownReadyData* _ready_data;
	GDBusMethodInvocation* invocation;
	GError* error = NULL;
	GDBusMessage* _reply_message = NULL;
	GVariant* _reply;
	GVariantBuilder _reply_builder;
	_ready_data = _user_data_;
	invocation = _ready_data->_invocation_;
	budgie_session_manager_remote_Shutdown_finish ((BudgieSessionManagerRemote*) source_object, _res_, &error);
	if (error) {
		g_dbus_method_invocation_take_error (invocation, error);
		goto _error;
	}
	_reply_message = g_dbus_message_new_method_reply (g_dbus_method_invocation_get_message (invocation));
	g_variant_builder_init (&_reply_builder, G_VARIANT_TYPE_TUPLE);
	_reply = g_variant_builder_end (&_reply_builder);
	g_dbus_message_set_body (_reply_message, _reply);
	g_dbus_connection_send_message (g_dbus_method_invocation_get_connection (invocation), _reply_message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
	g_object_unref (invocation);
	g_object_unref (_reply_message);
	_error:
	g_slice_free (budgie_session_manager_remote_ShutdownReadyData, _ready_data);
}

static void
budgie_session_manager_remote_dbus_interface_method_call (GDBusConnection* connection,
                                                          const gchar* sender,
                                                          const gchar* object_path,
                                                          const gchar* interface_name,
                                                          const gchar* method_name,
                                                          GVariant* parameters,
                                                          GDBusMethodInvocation* invocation,
                                                          gpointer user_data)
{
	gpointer* data;
	gpointer object;
	data = user_data;
	object = data[0];
	if (strcmp (method_name, "Logout") == 0) {
		_dbus_budgie_session_manager_remote_Logout (object, parameters, invocation);
	} else if (strcmp (method_name, "Reboot") == 0) {
		_dbus_budgie_session_manager_remote_Reboot (object, parameters, invocation);
	} else if (strcmp (method_name, "Shutdown") == 0) {
		_dbus_budgie_session_manager_remote_Shutdown (object, parameters, invocation);
	} else {
		g_object_unref (invocation);
	}
}

static GVariant*
budgie_session_manager_remote_dbus_interface_get_property (GDBusConnection* connection,
                                                           const gchar* sender,
                                                           const gchar* object_path,
                                                           const gchar* interface_name,
                                                           const gchar* property_name,
                                                           GError** error,
                                                           gpointer user_data)
{
	gpointer* data;
	gpointer object;
	data = user_data;
	object = data[0];
	return NULL;
}

static gboolean
budgie_session_manager_remote_dbus_interface_set_property (GDBusConnection* connection,
                                                           const gchar* sender,
                                                           const gchar* object_path,
                                                           const gchar* interface_name,
                                                           const gchar* property_name,
                                                           GVariant* value,
                                                           GError** error,
                                                           gpointer user_data)
{
	gpointer* data;
	gpointer object;
	data = user_data;
	object = data[0];
	return FALSE;
}

guint
budgie_session_manager_remote_register_object (gpointer object,
                                               GDBusConnection* connection,
                                               const gchar* path,
                                               GError** error)
{
	guint result;
	gpointer *data;
	data = g_new (gpointer, 3);
	data[0] = g_object_ref (object);
	data[1] = g_object_ref (connection);
	data[2] = g_strdup (path);
	result = g_dbus_connection_register_object (connection, path, (GDBusInterfaceInfo *) (&_budgie_session_manager_remote_dbus_interface_info), &_budgie_session_manager_remote_dbus_interface_vtable, data, _budgie_session_manager_remote_unregister_object, error);
	if (!result) {
		return 0;
	}
	return result;
}

static void
_budgie_session_manager_remote_unregister_object (gpointer user_data)
{
	gpointer* data;
	data = user_data;
	g_object_unref (data[0]);
	g_object_unref (data[1]);
	g_free (data[2]);
	g_free (data);
}

void
budgie_screensaver_remote_lock (BudgieScreensaverRemote* self,
                                GError** error)
{
	BudgieScreensaverRemoteIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = BUDGIE_SCREENSAVER_REMOTE_GET_INTERFACE (self);
	if (_iface_->lock) {
		_iface_->lock (self, error);
	}
}

static void
budgie_screensaver_remote_default_init (BudgieScreensaverRemoteIface * iface,
                                        gpointer iface_data)
{
}

static GType
budgie_screensaver_remote_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (BudgieScreensaverRemoteIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) budgie_screensaver_remote_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType budgie_screensaver_remote_type_id;
	budgie_screensaver_remote_type_id = g_type_register_static (G_TYPE_INTERFACE, "BudgieScreensaverRemote", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (budgie_screensaver_remote_type_id, G_TYPE_OBJECT);
	g_type_set_qdata (budgie_screensaver_remote_type_id, g_quark_from_static_string ("vala-dbus-proxy-type"), (void*) budgie_screensaver_remote_proxy_get_type);
	g_type_set_qdata (budgie_screensaver_remote_type_id, g_quark_from_static_string ("vala-dbus-interface-name"), "org.buddiesofbudgie.BudgieScreenlock");
	g_type_set_qdata (budgie_screensaver_remote_type_id, g_quark_from_static_string ("vala-dbus-interface-info"), (void*) (&_budgie_screensaver_remote_dbus_interface_info));
	g_type_set_qdata (budgie_screensaver_remote_type_id, g_quark_from_static_string ("vala-dbus-register-object"), (void*) budgie_screensaver_remote_register_object);
	return budgie_screensaver_remote_type_id;
}

GType
budgie_screensaver_remote_get_type (void)
{
	static volatile gsize budgie_screensaver_remote_type_id__once = 0;
	if (g_once_init_enter (&budgie_screensaver_remote_type_id__once)) {
		GType budgie_screensaver_remote_type_id;
		budgie_screensaver_remote_type_id = budgie_screensaver_remote_get_type_once ();
		g_once_init_leave (&budgie_screensaver_remote_type_id__once, budgie_screensaver_remote_type_id);
	}
	return budgie_screensaver_remote_type_id__once;
}

G_DEFINE_TYPE_EXTENDED (BudgieScreensaverRemoteProxy, budgie_screensaver_remote_proxy, G_TYPE_DBUS_PROXY, 0, G_IMPLEMENT_INTERFACE (BUDGIE_TYPE_SCREENSAVER_REMOTE, budgie_screensaver_remote_proxy_budgie_screensaver_remote_interface_init) )
static void
budgie_screensaver_remote_proxy_class_init (BudgieScreensaverRemoteProxyClass* klass)
{
	G_DBUS_PROXY_CLASS (klass)->g_signal = budgie_screensaver_remote_proxy_g_signal;
}

static void
budgie_screensaver_remote_proxy_g_signal (GDBusProxy* proxy,
                                          const gchar* sender_name,
                                          const gchar* signal_name,
                                          GVariant* parameters)
{
}

static void
budgie_screensaver_remote_proxy_init (BudgieScreensaverRemoteProxy* self)
{
	g_dbus_proxy_set_interface_info (G_DBUS_PROXY (self), (GDBusInterfaceInfo *) (&_budgie_screensaver_remote_dbus_interface_info));
}

static void
budgie_screensaver_remote_proxy_lock (BudgieScreensaverRemote* self,
                                      GError** error)
{
	GDBusMessage *_message;
	GVariant *_arguments;
	GVariantBuilder _arguments_builder;
	GDBusMessage *_reply_message;
	_message = g_dbus_message_new_method_call (g_dbus_proxy_get_name ((GDBusProxy *) self), g_dbus_proxy_get_object_path ((GDBusProxy *) self), "org.buddiesofbudgie.BudgieScreenlock", "Lock");
	g_variant_builder_init (&_arguments_builder, G_VARIANT_TYPE_TUPLE);
	_arguments = g_variant_builder_end (&_arguments_builder);
	g_dbus_message_set_body (_message, _arguments);
	_reply_message = g_dbus_connection_send_message_with_reply_sync (g_dbus_proxy_get_connection ((GDBusProxy *) self), _message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, g_dbus_proxy_get_default_timeout ((GDBusProxy *) self), NULL, NULL, error);
	g_object_unref (_message);
	if (!_reply_message) {
		return;
	}
	if (g_dbus_message_to_gerror (_reply_message, error)) {
		g_object_unref (_reply_message);
		return;
	}
	g_object_unref (_reply_message);
}

static void
budgie_screensaver_remote_proxy_budgie_screensaver_remote_interface_init (BudgieScreensaverRemoteIface* iface)
{
	iface->lock = budgie_screensaver_remote_proxy_lock;
}

static void
_dbus_budgie_screensaver_remote_lock (BudgieScreensaverRemote* self,
                                      GVariant* _parameters_,
                                      GDBusMethodInvocation* invocation)
{
	GError* error = NULL;
	GVariantIter _arguments_iter;
	GDBusMessage* _reply_message = NULL;
	GVariant* _reply;
	GVariantBuilder _reply_builder;
	g_variant_iter_init (&_arguments_iter, _parameters_);
	budgie_screensaver_remote_lock (self, &error);
	if (error) {
		g_dbus_method_invocation_take_error (invocation, error);
		return;
	}
	_reply_message = g_dbus_message_new_method_reply (g_dbus_method_invocation_get_message (invocation));
	g_variant_builder_init (&_reply_builder, G_VARIANT_TYPE_TUPLE);
	_reply = g_variant_builder_end (&_reply_builder);
	g_dbus_message_set_body (_reply_message, _reply);
	g_dbus_connection_send_message (g_dbus_method_invocation_get_connection (invocation), _reply_message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
	g_object_unref (invocation);
	g_object_unref (_reply_message);
}

static void
budgie_screensaver_remote_dbus_interface_method_call (GDBusConnection* connection,
                                                      const gchar* sender,
                                                      const gchar* object_path,
                                                      const gchar* interface_name,
                                                      const gchar* method_name,
                                                      GVariant* parameters,
                                                      GDBusMethodInvocation* invocation,
                                                      gpointer user_data)
{
	gpointer* data;
	gpointer object;
	data = user_data;
	object = data[0];
	if (strcmp (method_name, "Lock") == 0) {
		_dbus_budgie_screensaver_remote_lock (object, parameters, invocation);
	} else {
		g_object_unref (invocation);
	}
}

static GVariant*
budgie_screensaver_remote_dbus_interface_get_property (GDBusConnection* connection,
                                                       const gchar* sender,
                                                       const gchar* object_path,
                                                       const gchar* interface_name,
                                                       const gchar* property_name,
                                                       GError** error,
                                                       gpointer user_data)
{
	gpointer* data;
	gpointer object;
	data = user_data;
	object = data[0];
	return NULL;
}

static gboolean
budgie_screensaver_remote_dbus_interface_set_property (GDBusConnection* connection,
                                                       const gchar* sender,
                                                       const gchar* object_path,
                                                       const gchar* interface_name,
                                                       const gchar* property_name,
                                                       GVariant* value,
                                                       GError** error,
                                                       gpointer user_data)
{
	gpointer* data;
	gpointer object;
	data = user_data;
	object = data[0];
	return FALSE;
}

guint
budgie_screensaver_remote_register_object (gpointer object,
                                           GDBusConnection* connection,
                                           const gchar* path,
                                           GError** error)
{
	guint result;
	gpointer *data;
	data = g_new (gpointer, 3);
	data[0] = g_object_ref (object);
	data[1] = g_object_ref (connection);
	data[2] = g_strdup (path);
	result = g_dbus_connection_register_object (connection, path, (GDBusInterfaceInfo *) (&_budgie_screensaver_remote_dbus_interface_info), &_budgie_screensaver_remote_dbus_interface_vtable, data, _budgie_screensaver_remote_unregister_object, error);
	if (!result) {
		return 0;
	}
	return result;
}

static void
_budgie_screensaver_remote_unregister_object (gpointer user_data)
{
	gpointer* data;
	data = user_data;
	g_object_unref (data[0]);
	g_object_unref (data[1]);
	g_free (data[2]);
	g_free (data);
}

