/* AppService.c generated by valac 0.56.17, the Vala compiler
 * generated from AppService.vala, do not modify */

/*
    AppService.vala
    Copyright (C) 2012 Maia Kozheva <sikon@ubuntu.com>

    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 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

#include <glib-object.h>
#include <gio/gio.h>
#include <stdlib.h>
#include <string.h>
#include <glib.h>
#include <gtk/gtk.h>
#include <gdk/gdk.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

typedef enum  {
	STEADYFLOW_SHOW_MAIN_WINDOW_DEFAULT,
	STEADYFLOW_SHOW_MAIN_WINDOW_SHOW,
	STEADYFLOW_SHOW_MAIN_WINDOW_HIDE
} SteadyflowShowMainWindow;

#define STEADYFLOW_TYPE_SHOW_MAIN_WINDOW (steadyflow_show_main_window_get_type ())

#define STEADYFLOW_TYPE_IAPP_SERVICE (steadyflow_iapp_service_get_type ())
#define STEADYFLOW_IAPP_SERVICE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), STEADYFLOW_TYPE_IAPP_SERVICE, SteadyflowIAppService))
#define STEADYFLOW_IS_IAPP_SERVICE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), STEADYFLOW_TYPE_IAPP_SERVICE))
#define STEADYFLOW_IAPP_SERVICE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), STEADYFLOW_TYPE_IAPP_SERVICE, SteadyflowIAppServiceIface))

typedef struct _SteadyflowIAppService SteadyflowIAppService;
typedef struct _SteadyflowIAppServiceIface SteadyflowIAppServiceIface;

#define STEADYFLOW_TYPE_IAPP_SERVICE_PROXY (steadyflow_iapp_service_proxy_get_type ())

#define STEADYFLOW_TYPE_APP_SERVICE (steadyflow_app_service_get_type ())
#define STEADYFLOW_APP_SERVICE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), STEADYFLOW_TYPE_APP_SERVICE, SteadyflowAppService))
#define STEADYFLOW_APP_SERVICE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), STEADYFLOW_TYPE_APP_SERVICE, SteadyflowAppServiceClass))
#define STEADYFLOW_IS_APP_SERVICE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), STEADYFLOW_TYPE_APP_SERVICE))
#define STEADYFLOW_IS_APP_SERVICE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), STEADYFLOW_TYPE_APP_SERVICE))
#define STEADYFLOW_APP_SERVICE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), STEADYFLOW_TYPE_APP_SERVICE, SteadyflowAppServiceClass))

typedef struct _SteadyflowAppService SteadyflowAppService;
typedef struct _SteadyflowAppServiceClass SteadyflowAppServiceClass;
typedef struct _SteadyflowAppServicePrivate SteadyflowAppServicePrivate;

#define STEADYFLOW_TYPE_NOTIFICATION_CONTROLLER (steadyflow_notification_controller_get_type ())
#define STEADYFLOW_NOTIFICATION_CONTROLLER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), STEADYFLOW_TYPE_NOTIFICATION_CONTROLLER, SteadyflowNotificationController))
#define STEADYFLOW_NOTIFICATION_CONTROLLER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), STEADYFLOW_TYPE_NOTIFICATION_CONTROLLER, SteadyflowNotificationControllerClass))
#define STEADYFLOW_IS_NOTIFICATION_CONTROLLER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), STEADYFLOW_TYPE_NOTIFICATION_CONTROLLER))
#define STEADYFLOW_IS_NOTIFICATION_CONTROLLER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), STEADYFLOW_TYPE_NOTIFICATION_CONTROLLER))
#define STEADYFLOW_NOTIFICATION_CONTROLLER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), STEADYFLOW_TYPE_NOTIFICATION_CONTROLLER, SteadyflowNotificationControllerClass))

typedef struct _SteadyflowNotificationController SteadyflowNotificationController;
typedef struct _SteadyflowNotificationControllerClass SteadyflowNotificationControllerClass;

#define STEADYFLOW_UI_TYPE_GTK_BUILDER_WINDOW (steadyflow_ui_gtk_builder_window_get_type ())
#define STEADYFLOW_UI_GTK_BUILDER_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), STEADYFLOW_UI_TYPE_GTK_BUILDER_WINDOW, SteadyflowUIGtkBuilderWindow))
#define STEADYFLOW_UI_GTK_BUILDER_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), STEADYFLOW_UI_TYPE_GTK_BUILDER_WINDOW, SteadyflowUIGtkBuilderWindowClass))
#define STEADYFLOW_UI_IS_GTK_BUILDER_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), STEADYFLOW_UI_TYPE_GTK_BUILDER_WINDOW))
#define STEADYFLOW_UI_IS_GTK_BUILDER_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), STEADYFLOW_UI_TYPE_GTK_BUILDER_WINDOW))
#define STEADYFLOW_UI_GTK_BUILDER_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), STEADYFLOW_UI_TYPE_GTK_BUILDER_WINDOW, SteadyflowUIGtkBuilderWindowClass))

typedef struct _SteadyflowUIGtkBuilderWindow SteadyflowUIGtkBuilderWindow;
typedef struct _SteadyflowUIGtkBuilderWindowClass SteadyflowUIGtkBuilderWindowClass;

#define STEADYFLOW_TYPE_MAIN_WINDOW (steadyflow_main_window_get_type ())
#define STEADYFLOW_MAIN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), STEADYFLOW_TYPE_MAIN_WINDOW, SteadyflowMainWindow))
#define STEADYFLOW_MAIN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), STEADYFLOW_TYPE_MAIN_WINDOW, SteadyflowMainWindowClass))
#define STEADYFLOW_IS_MAIN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), STEADYFLOW_TYPE_MAIN_WINDOW))
#define STEADYFLOW_IS_MAIN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), STEADYFLOW_TYPE_MAIN_WINDOW))
#define STEADYFLOW_MAIN_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), STEADYFLOW_TYPE_MAIN_WINDOW, SteadyflowMainWindowClass))

typedef struct _SteadyflowMainWindow SteadyflowMainWindow;
typedef struct _SteadyflowMainWindowClass SteadyflowMainWindowClass;
enum  {
	STEADYFLOW_APP_SERVICE_0_PROPERTY,
	STEADYFLOW_APP_SERVICE_NUM_PROPERTIES
};
static GParamSpec* steadyflow_app_service_properties[STEADYFLOW_APP_SERVICE_NUM_PROPERTIES];
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
#define _g_free0(var) (var = (g_free (var), NULL))

#define STEADYFLOW_CORE_TYPE_ISETTINGS_SERVICE (steadyflow_core_isettings_service_get_type ())
#define STEADYFLOW_CORE_ISETTINGS_SERVICE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), STEADYFLOW_CORE_TYPE_ISETTINGS_SERVICE, SteadyflowCoreISettingsService))
#define STEADYFLOW_CORE_IS_ISETTINGS_SERVICE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), STEADYFLOW_CORE_TYPE_ISETTINGS_SERVICE))
#define STEADYFLOW_CORE_ISETTINGS_SERVICE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), STEADYFLOW_CORE_TYPE_ISETTINGS_SERVICE, SteadyflowCoreISettingsServiceIface))

typedef struct _SteadyflowCoreISettingsService SteadyflowCoreISettingsService;
typedef struct _SteadyflowCoreISettingsServiceIface SteadyflowCoreISettingsServiceIface;

struct _SteadyflowIAppServiceIface {
	GTypeInterface parent_iface;
	void (*add_file) (SteadyflowIAppService* self, const gchar* url, GError** error);
	void (*set_visible) (SteadyflowIAppService* self, gboolean visible, GError** error);
};

struct _SteadyflowAppService {
	GObject parent_instance;
	SteadyflowAppServicePrivate * priv;
};

struct _SteadyflowAppServiceClass {
	GObjectClass parent_class;
};

struct _SteadyflowAppServicePrivate {
	SteadyflowNotificationController* notifications;
	SteadyflowMainWindow* main_wnd;
	gboolean started;
};

struct _SteadyflowCoreISettingsServiceIface {
	GTypeInterface parent_iface;
	gboolean (*get_boolean) (SteadyflowCoreISettingsService* self, const gchar* key);
	gint (*get_int) (SteadyflowCoreISettingsService* self, const gchar* key);
	gint (*get_enum) (SteadyflowCoreISettingsService* self, const gchar* key);
	gchar* (*get_string) (SteadyflowCoreISettingsService* self, const gchar* key);
	void (*set_boolean) (SteadyflowCoreISettingsService* self, const gchar* key, gboolean value);
	void (*set_int) (SteadyflowCoreISettingsService* self, const gchar* key, gint value);
	void (*set_enum) (SteadyflowCoreISettingsService* self, const gchar* key, gint value);
	void (*set_string) (SteadyflowCoreISettingsService* self, const gchar* key, const gchar* value);
	void (*save) (SteadyflowCoreISettingsService* self);
};

static gint SteadyflowAppService_private_offset;
static gpointer steadyflow_app_service_parent_class = NULL;
static SteadyflowIAppServiceIface * steadyflow_app_service_steadyflow_iapp_service_parent_iface = NULL;

VALA_EXTERN GType steadyflow_show_main_window_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GType steadyflow_iapp_service_proxy_get_type (void) G_GNUC_CONST ;
VALA_EXTERN guint steadyflow_iapp_service_register_object (void* object,
                                               GDBusConnection* connection,
                                               const gchar* path,
                                               GError** error);
VALA_EXTERN GType steadyflow_iapp_service_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SteadyflowIAppService, g_object_unref)
VALA_EXTERN GType steadyflow_app_service_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SteadyflowAppService, g_object_unref)
VALA_EXTERN GType steadyflow_notification_controller_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SteadyflowNotificationController, g_object_unref)
VALA_EXTERN GType steadyflow_ui_gtk_builder_window_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SteadyflowUIGtkBuilderWindow, g_object_unref)
VALA_EXTERN GType steadyflow_main_window_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SteadyflowMainWindow, g_object_unref)
VALA_EXTERN void steadyflow_app_service_stop (SteadyflowAppService* self);
VALA_EXTERN SteadyflowAppService* steadyflow_app_service_new (void);
VALA_EXTERN SteadyflowAppService* steadyflow_app_service_construct (GType object_type);
VALA_EXTERN void steadyflow_app_service_start (SteadyflowAppService* self,
                                   SteadyflowShowMainWindow show,
                                   GError** error);
VALA_EXTERN void steadyflow_services_init (void);
VALA_EXTERN gchar* steadyflow_core_util_resolve_path (const gchar* rel_path);
VALA_EXTERN SteadyflowMainWindow* steadyflow_main_window_new (GError** error);
VALA_EXTERN SteadyflowMainWindow* steadyflow_main_window_construct (GType object_type,
                                                        GError** error);
VALA_EXTERN GType steadyflow_core_isettings_service_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SteadyflowCoreISettingsService, g_object_unref)
VALA_EXTERN SteadyflowCoreISettingsService* steadyflow_services_get_settings (void);
VALA_EXTERN gboolean steadyflow_core_isettings_service_get_boolean (SteadyflowCoreISettingsService* self,
                                                        const gchar* key);
VALA_EXTERN SteadyflowNotificationController* steadyflow_notification_controller_new (void);
VALA_EXTERN SteadyflowNotificationController* steadyflow_notification_controller_construct (GType object_type);
VALA_EXTERN void steadyflow_services_done (void);
static void steadyflow_app_service_real_add_file (SteadyflowIAppService* base,
                                           const gchar* url,
                                           GError** error);
VALA_EXTERN void steadyflow_main_window_add_download (SteadyflowMainWindow* self,
                                          const gchar* starting_url);
static void steadyflow_app_service_real_set_visible (SteadyflowIAppService* base,
                                              gboolean visible,
                                              GError** error);
VALA_EXTERN void steadyflow_iapp_service_add_file (SteadyflowIAppService* self,
                                       const gchar* url,
                                       GError** error);
VALA_EXTERN void steadyflow_iapp_service_set_visible (SteadyflowIAppService* self,
                                          gboolean visible,
                                          GError** error);
static void steadyflow_app_service_finalize (GObject * obj);
static GType steadyflow_app_service_get_type_once (void);

static GType
steadyflow_show_main_window_get_type_once (void)
{
	static const GEnumValue values[] = {{STEADYFLOW_SHOW_MAIN_WINDOW_DEFAULT, "STEADYFLOW_SHOW_MAIN_WINDOW_DEFAULT", "default"}, {STEADYFLOW_SHOW_MAIN_WINDOW_SHOW, "STEADYFLOW_SHOW_MAIN_WINDOW_SHOW", "show"}, {STEADYFLOW_SHOW_MAIN_WINDOW_HIDE, "STEADYFLOW_SHOW_MAIN_WINDOW_HIDE", "hide"}, {0, NULL, NULL}};
	GType steadyflow_show_main_window_type_id;
	steadyflow_show_main_window_type_id = g_enum_register_static ("SteadyflowShowMainWindow", values);
	return steadyflow_show_main_window_type_id;
}

GType
steadyflow_show_main_window_get_type (void)
{
	static volatile gsize steadyflow_show_main_window_type_id__once = 0;
	if (g_once_init_enter (&steadyflow_show_main_window_type_id__once)) {
		GType steadyflow_show_main_window_type_id;
		steadyflow_show_main_window_type_id = steadyflow_show_main_window_get_type_once ();
		g_once_init_leave (&steadyflow_show_main_window_type_id__once, steadyflow_show_main_window_type_id);
	}
	return steadyflow_show_main_window_type_id__once;
}

static inline gpointer
steadyflow_app_service_get_instance_private (SteadyflowAppService* self)
{
	return G_STRUCT_MEMBER_P (self, SteadyflowAppService_private_offset);
}

SteadyflowAppService*
steadyflow_app_service_construct (GType object_type)
{
	SteadyflowAppService * self = NULL;
	self = (SteadyflowAppService*) g_object_new (object_type, NULL);
	return self;
}

SteadyflowAppService*
steadyflow_app_service_new (void)
{
	return steadyflow_app_service_construct (STEADYFLOW_TYPE_APP_SERVICE);
}

void
steadyflow_app_service_start (SteadyflowAppService* self,
                              SteadyflowShowMainWindow show,
                              GError** error)
{
	GtkIconTheme* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	SteadyflowMainWindow* _tmp3_ = NULL;
	SteadyflowMainWindow* _tmp4_;
	SteadyflowMainWindow* _tmp5_;
	SteadyflowCoreISettingsService* _tmp6_;
	SteadyflowCoreISettingsService* _tmp7_;
	SteadyflowNotificationController* _tmp15_;
	GError* _inner_error0_ = NULL;
	g_return_if_fail (self != NULL);
	steadyflow_services_init ();
	self->priv->started = TRUE;
	_tmp0_ = gtk_icon_theme_get_default ();
	_tmp1_ = steadyflow_core_util_resolve_path ("img");
	_tmp2_ = _tmp1_;
	gtk_icon_theme_append_search_path (_tmp0_, _tmp2_);
	_g_free0 (_tmp2_);
	_tmp4_ = steadyflow_main_window_new (&_inner_error0_);
	_tmp3_ = _tmp4_;
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_propagate_error (error, _inner_error0_);
		return;
	}
	_tmp5_ = _tmp3_;
	_tmp3_ = NULL;
	if (_tmp5_ != NULL) {
		g_object_ref_sink (_tmp5_);
	}
	_g_object_unref0 (self->priv->main_wnd);
	self->priv->main_wnd = _tmp5_;
	_tmp6_ = steadyflow_services_get_settings ();
	_tmp7_ = _tmp6_;
	if (!steadyflow_core_isettings_service_get_boolean (_tmp7_, "show-indicator")) {
		SteadyflowMainWindow* _tmp8_;
		_tmp8_ = self->priv->main_wnd;
		gtk_widget_show ((GtkWidget*) _tmp8_);
	} else {
		SteadyflowMainWindow* _tmp9_;
		gboolean start_minimized = FALSE;
		SteadyflowCoreISettingsService* _tmp10_;
		SteadyflowCoreISettingsService* _tmp11_;
		gboolean _tmp12_ = FALSE;
		_tmp9_ = self->priv->main_wnd;
		gtk_widget_realize ((GtkWidget*) _tmp9_);
		_tmp10_ = steadyflow_services_get_settings ();
		_tmp11_ = _tmp10_;
		start_minimized = steadyflow_core_isettings_service_get_boolean (_tmp11_, "start-minimized");
		if (show == STEADYFLOW_SHOW_MAIN_WINDOW_SHOW) {
			_tmp12_ = TRUE;
		} else {
			gboolean _tmp13_ = FALSE;
			if (show == STEADYFLOW_SHOW_MAIN_WINDOW_DEFAULT) {
				_tmp13_ = !start_minimized;
			} else {
				_tmp13_ = FALSE;
			}
			_tmp12_ = _tmp13_;
		}
		if (_tmp12_) {
			SteadyflowMainWindow* _tmp14_;
			_tmp14_ = self->priv->main_wnd;
			gtk_widget_show ((GtkWidget*) _tmp14_);
		} else {
			gdk_notify_startup_complete ();
		}
	}
	_tmp15_ = steadyflow_notification_controller_new ();
	_g_object_unref0 (self->priv->notifications);
	self->priv->notifications = _tmp15_;
	_g_object_unref0 (_tmp3_);
}

void
steadyflow_app_service_stop (SteadyflowAppService* self)
{
	g_return_if_fail (self != NULL);
	_g_object_unref0 (self->priv->main_wnd);
	self->priv->main_wnd = NULL;
	if (self->priv->started) {
		steadyflow_services_done ();
		self->priv->started = FALSE;
	}
}

static void
steadyflow_app_service_real_add_file (SteadyflowIAppService* base,
                                      const gchar* url,
                                      GError** error)
{
	SteadyflowAppService * self;
	SteadyflowMainWindow* _tmp0_;
	self = (SteadyflowAppService*) base;
	g_return_if_fail (url != NULL);
	_tmp0_ = self->priv->main_wnd;
	steadyflow_main_window_add_download (_tmp0_, url);
}

static void
steadyflow_app_service_real_set_visible (SteadyflowIAppService* base,
                                         gboolean visible,
                                         GError** error)
{
	SteadyflowAppService * self;
	SteadyflowMainWindow* _tmp0_;
	self = (SteadyflowAppService*) base;
	_tmp0_ = self->priv->main_wnd;
	gtk_widget_set_visible ((GtkWidget*) _tmp0_, visible);
}

static void
steadyflow_app_service_class_init (SteadyflowAppServiceClass * klass,
                                   gpointer klass_data)
{
	steadyflow_app_service_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &SteadyflowAppService_private_offset);
	G_OBJECT_CLASS (klass)->finalize = steadyflow_app_service_finalize;
}

static void
steadyflow_app_service_steadyflow_iapp_service_interface_init (SteadyflowIAppServiceIface * iface,
                                                               gpointer iface_data)
{
	steadyflow_app_service_steadyflow_iapp_service_parent_iface = g_type_interface_peek_parent (iface);
	iface->add_file = (void (*) (SteadyflowIAppService*, const gchar*, GError**)) steadyflow_app_service_real_add_file;
	iface->set_visible = (void (*) (SteadyflowIAppService*, gboolean, GError**)) steadyflow_app_service_real_set_visible;
}

static void
steadyflow_app_service_instance_init (SteadyflowAppService * self,
                                      gpointer klass)
{
	self->priv = steadyflow_app_service_get_instance_private (self);
	self->priv->started = FALSE;
}

static void
steadyflow_app_service_finalize (GObject * obj)
{
	SteadyflowAppService * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, STEADYFLOW_TYPE_APP_SERVICE, SteadyflowAppService);
	steadyflow_app_service_stop (self);
	_g_object_unref0 (self->priv->notifications);
	_g_object_unref0 (self->priv->main_wnd);
	G_OBJECT_CLASS (steadyflow_app_service_parent_class)->finalize (obj);
}

static GType
steadyflow_app_service_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (SteadyflowAppServiceClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) steadyflow_app_service_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SteadyflowAppService), 0, (GInstanceInitFunc) steadyflow_app_service_instance_init, NULL };
	static const GInterfaceInfo steadyflow_iapp_service_info = { (GInterfaceInitFunc) steadyflow_app_service_steadyflow_iapp_service_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
	GType steadyflow_app_service_type_id;
	steadyflow_app_service_type_id = g_type_register_static (G_TYPE_OBJECT, "SteadyflowAppService", &g_define_type_info, 0);
	g_type_add_interface_static (steadyflow_app_service_type_id, STEADYFLOW_TYPE_IAPP_SERVICE, &steadyflow_iapp_service_info);
	SteadyflowAppService_private_offset = g_type_add_instance_private (steadyflow_app_service_type_id, sizeof (SteadyflowAppServicePrivate));
	return steadyflow_app_service_type_id;
}

GType
steadyflow_app_service_get_type (void)
{
	static volatile gsize steadyflow_app_service_type_id__once = 0;
	if (g_once_init_enter (&steadyflow_app_service_type_id__once)) {
		GType steadyflow_app_service_type_id;
		steadyflow_app_service_type_id = steadyflow_app_service_get_type_once ();
		g_once_init_leave (&steadyflow_app_service_type_id__once, steadyflow_app_service_type_id);
	}
	return steadyflow_app_service_type_id__once;
}

