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

/*
 *  pamac-vala
 *
 *  Copyright (C) 2019-2023 Guillaume Benoit <guillaume@manjaro.org>
 *
 *  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 get of the GNU General Public License
 *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

#include <glib-object.h>
#include <glib.h>
#include <stdlib.h>
#include <string.h>
#include "pamac-flatpak.h"
#include <float.h>
#include <math.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

#define PAMAC_TYPE_FLATPAK_PLUGIN (pamac_flatpak_plugin_get_type ())
#define PAMAC_FLATPAK_PLUGIN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PAMAC_TYPE_FLATPAK_PLUGIN, PamacFlatpakPlugin))
#define PAMAC_IS_FLATPAK_PLUGIN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PAMAC_TYPE_FLATPAK_PLUGIN))
#define PAMAC_FLATPAK_PLUGIN_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), PAMAC_TYPE_FLATPAK_PLUGIN, PamacFlatpakPluginIface))

typedef struct _PamacFlatpakPlugin PamacFlatpakPlugin;
typedef struct _PamacFlatpakPluginIface PamacFlatpakPluginIface;
enum  {
	PAMAC_FLATPAK_PLUGIN_EMIT_ACTION_PROGRESS_SIGNAL,
	PAMAC_FLATPAK_PLUGIN_EMIT_SCRIPT_OUTPUT_SIGNAL,
	PAMAC_FLATPAK_PLUGIN_EMIT_ERROR_SIGNAL,
	PAMAC_FLATPAK_PLUGIN_NUM_SIGNALS
};
static guint pamac_flatpak_plugin_signals[PAMAC_FLATPAK_PLUGIN_NUM_SIGNALS] = {0};
enum  {
	PAMAC_FLATPAK_PACKAGE_0_PROPERTY,
	PAMAC_FLATPAK_PACKAGE_NUM_PROPERTIES
};
static GParamSpec* pamac_flatpak_package_properties[PAMAC_FLATPAK_PACKAGE_NUM_PROPERTIES];

struct _PamacFlatpakPluginIface {
	GTypeInterface parent_iface;
	gboolean (*refresh_appstream_data) (PamacFlatpakPlugin* self);
	void (*load_appstream_data) (PamacFlatpakPlugin* self);
	void (*get_remotes_names) (PamacFlatpakPlugin* self, GPtrArray** remotes_names);
	void (*search_flatpaks) (PamacFlatpakPlugin* self, const gchar* search_string, GPtrArray** pkgs);
	void (*search_uninstalled_flatpaks_sync) (PamacFlatpakPlugin* self, gchar** search_terms, gint search_terms_length1, GPtrArray** pkgs);
	gboolean (*is_installed_flatpak) (PamacFlatpakPlugin* self, const gchar* name);
	PamacFlatpakPackage* (*get_flatpak_by_app_id) (PamacFlatpakPlugin* self, const gchar* app_id);
	PamacFlatpakPackage* (*get_flatpak) (PamacFlatpakPlugin* self, const gchar* id);
	void (*get_installed_flatpaks) (PamacFlatpakPlugin* self, GPtrArray** pkgs);
	void (*get_category_flatpaks) (PamacFlatpakPlugin* self, const gchar* category, GPtrArray** pkgs);
	void (*get_flatpak_updates) (PamacFlatpakPlugin* self, GPtrArray** pkgs);
	gboolean (*trans_run) (PamacFlatpakPlugin* self, const gchar* sender, gchar** to_install, gint to_install_length1, gchar** to_remove, gint to_remove_length1, gchar** to_upgrade, gint to_upgrade_length1);
	void (*trans_cancel) (PamacFlatpakPlugin* self, const gchar* sender);
	void (*refresh) (PamacFlatpakPlugin* self);
	guint64 (*get_refresh_period) (PamacFlatpakPlugin* self);
	void (*set_refresh_period) (PamacFlatpakPlugin* self, guint64 value);
};

static gpointer pamac_flatpak_package_parent_class = NULL;

VALA_EXTERN GType pamac_flatpak_plugin_get_type (void) G_GNUC_CONST ;
VALA_EXTERN gboolean pamac_flatpak_plugin_refresh_appstream_data (PamacFlatpakPlugin* self);
VALA_EXTERN void pamac_flatpak_plugin_load_appstream_data (PamacFlatpakPlugin* self);
VALA_EXTERN void pamac_flatpak_plugin_get_remotes_names (PamacFlatpakPlugin* self,
                                             GPtrArray** remotes_names);
VALA_EXTERN void pamac_flatpak_plugin_search_flatpaks (PamacFlatpakPlugin* self,
                                           const gchar* search_string,
                                           GPtrArray** pkgs);
VALA_EXTERN void pamac_flatpak_plugin_search_uninstalled_flatpaks_sync (PamacFlatpakPlugin* self,
                                                            gchar** search_terms,
                                                            gint search_terms_length1,
                                                            GPtrArray** pkgs);
VALA_EXTERN gboolean pamac_flatpak_plugin_is_installed_flatpak (PamacFlatpakPlugin* self,
                                                    const gchar* name);
VALA_EXTERN PamacFlatpakPackage* pamac_flatpak_plugin_get_flatpak_by_app_id (PamacFlatpakPlugin* self,
                                                                 const gchar* app_id);
VALA_EXTERN PamacFlatpakPackage* pamac_flatpak_plugin_get_flatpak (PamacFlatpakPlugin* self,
                                                       const gchar* id);
VALA_EXTERN void pamac_flatpak_plugin_get_installed_flatpaks (PamacFlatpakPlugin* self,
                                                  GPtrArray** pkgs);
VALA_EXTERN void pamac_flatpak_plugin_get_category_flatpaks (PamacFlatpakPlugin* self,
                                                 const gchar* category,
                                                 GPtrArray** pkgs);
VALA_EXTERN void pamac_flatpak_plugin_get_flatpak_updates (PamacFlatpakPlugin* self,
                                               GPtrArray** pkgs);
VALA_EXTERN gboolean pamac_flatpak_plugin_trans_run (PamacFlatpakPlugin* self,
                                         const gchar* sender,
                                         gchar** to_install,
                                         gint to_install_length1,
                                         gchar** to_remove,
                                         gint to_remove_length1,
                                         gchar** to_upgrade,
                                         gint to_upgrade_length1);
VALA_EXTERN void pamac_flatpak_plugin_trans_cancel (PamacFlatpakPlugin* self,
                                        const gchar* sender);
VALA_EXTERN void pamac_flatpak_plugin_refresh (PamacFlatpakPlugin* self);
VALA_EXTERN guint64 pamac_flatpak_plugin_get_refresh_period (PamacFlatpakPlugin* self);
VALA_EXTERN void pamac_flatpak_plugin_set_refresh_period (PamacFlatpakPlugin* self,
                                              guint64 value);
static void g_cclosure_user_marshal_VOID__STRING_STRING_STRING_DOUBLE (GClosure * closure,
                                                                GValue * return_value,
                                                                guint n_param_values,
                                                                const GValue * param_values,
                                                                gpointer invocation_hint,
                                                                gpointer marshal_data);
static void g_cclosure_user_marshal_VOID__STRING_STRING (GClosure * closure,
                                                  GValue * return_value,
                                                  guint n_param_values,
                                                  const GValue * param_values,
                                                  gpointer invocation_hint,
                                                  gpointer marshal_data);
static void g_cclosure_user_marshal_VOID__STRING_STRING_BOXED_INT (GClosure * closure,
                                                            GValue * return_value,
                                                            guint n_param_values,
                                                            const GValue * param_values,
                                                            gpointer invocation_hint,
                                                            gpointer marshal_data);
static GType pamac_flatpak_plugin_get_type_once (void);
VALA_EXTERN PamacFlatpakPackage* pamac_flatpak_package_construct (GType object_type);
VALA_EXTERN PamacPackage* pamac_package_construct (GType object_type);
static GType pamac_flatpak_package_get_type_once (void);

gboolean
pamac_flatpak_plugin_refresh_appstream_data (PamacFlatpakPlugin* self)
{
	PamacFlatpakPluginIface* _iface_;
	g_return_val_if_fail (self != NULL, FALSE);
	_iface_ = PAMAC_FLATPAK_PLUGIN_GET_INTERFACE (self);
	if (_iface_->refresh_appstream_data) {
		return _iface_->refresh_appstream_data (self);
	}
	return FALSE;
}

void
pamac_flatpak_plugin_load_appstream_data (PamacFlatpakPlugin* self)
{
	PamacFlatpakPluginIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = PAMAC_FLATPAK_PLUGIN_GET_INTERFACE (self);
	if (_iface_->load_appstream_data) {
		_iface_->load_appstream_data (self);
	}
}

void
pamac_flatpak_plugin_get_remotes_names (PamacFlatpakPlugin* self,
                                        GPtrArray** remotes_names)
{
	PamacFlatpakPluginIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = PAMAC_FLATPAK_PLUGIN_GET_INTERFACE (self);
	if (_iface_->get_remotes_names) {
		_iface_->get_remotes_names (self, remotes_names);
	}
}

void
pamac_flatpak_plugin_search_flatpaks (PamacFlatpakPlugin* self,
                                      const gchar* search_string,
                                      GPtrArray** pkgs)
{
	PamacFlatpakPluginIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = PAMAC_FLATPAK_PLUGIN_GET_INTERFACE (self);
	if (_iface_->search_flatpaks) {
		_iface_->search_flatpaks (self, search_string, pkgs);
	}
}

void
pamac_flatpak_plugin_search_uninstalled_flatpaks_sync (PamacFlatpakPlugin* self,
                                                       gchar** search_terms,
                                                       gint search_terms_length1,
                                                       GPtrArray** pkgs)
{
	PamacFlatpakPluginIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = PAMAC_FLATPAK_PLUGIN_GET_INTERFACE (self);
	if (_iface_->search_uninstalled_flatpaks_sync) {
		_iface_->search_uninstalled_flatpaks_sync (self, search_terms, search_terms_length1, pkgs);
	}
}

gboolean
pamac_flatpak_plugin_is_installed_flatpak (PamacFlatpakPlugin* self,
                                           const gchar* name)
{
	PamacFlatpakPluginIface* _iface_;
	g_return_val_if_fail (self != NULL, FALSE);
	_iface_ = PAMAC_FLATPAK_PLUGIN_GET_INTERFACE (self);
	if (_iface_->is_installed_flatpak) {
		return _iface_->is_installed_flatpak (self, name);
	}
	return FALSE;
}

PamacFlatpakPackage*
pamac_flatpak_plugin_get_flatpak_by_app_id (PamacFlatpakPlugin* self,
                                            const gchar* app_id)
{
	PamacFlatpakPluginIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = PAMAC_FLATPAK_PLUGIN_GET_INTERFACE (self);
	if (_iface_->get_flatpak_by_app_id) {
		return _iface_->get_flatpak_by_app_id (self, app_id);
	}
	return NULL;
}

PamacFlatpakPackage*
pamac_flatpak_plugin_get_flatpak (PamacFlatpakPlugin* self,
                                  const gchar* id)
{
	PamacFlatpakPluginIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = PAMAC_FLATPAK_PLUGIN_GET_INTERFACE (self);
	if (_iface_->get_flatpak) {
		return _iface_->get_flatpak (self, id);
	}
	return NULL;
}

void
pamac_flatpak_plugin_get_installed_flatpaks (PamacFlatpakPlugin* self,
                                             GPtrArray** pkgs)
{
	PamacFlatpakPluginIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = PAMAC_FLATPAK_PLUGIN_GET_INTERFACE (self);
	if (_iface_->get_installed_flatpaks) {
		_iface_->get_installed_flatpaks (self, pkgs);
	}
}

void
pamac_flatpak_plugin_get_category_flatpaks (PamacFlatpakPlugin* self,
                                            const gchar* category,
                                            GPtrArray** pkgs)
{
	PamacFlatpakPluginIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = PAMAC_FLATPAK_PLUGIN_GET_INTERFACE (self);
	if (_iface_->get_category_flatpaks) {
		_iface_->get_category_flatpaks (self, category, pkgs);
	}
}

void
pamac_flatpak_plugin_get_flatpak_updates (PamacFlatpakPlugin* self,
                                          GPtrArray** pkgs)
{
	PamacFlatpakPluginIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = PAMAC_FLATPAK_PLUGIN_GET_INTERFACE (self);
	if (_iface_->get_flatpak_updates) {
		_iface_->get_flatpak_updates (self, pkgs);
	}
}

gboolean
pamac_flatpak_plugin_trans_run (PamacFlatpakPlugin* self,
                                const gchar* sender,
                                gchar** to_install,
                                gint to_install_length1,
                                gchar** to_remove,
                                gint to_remove_length1,
                                gchar** to_upgrade,
                                gint to_upgrade_length1)
{
	PamacFlatpakPluginIface* _iface_;
	g_return_val_if_fail (self != NULL, FALSE);
	_iface_ = PAMAC_FLATPAK_PLUGIN_GET_INTERFACE (self);
	if (_iface_->trans_run) {
		return _iface_->trans_run (self, sender, to_install, to_install_length1, to_remove, to_remove_length1, to_upgrade, to_upgrade_length1);
	}
	return FALSE;
}

void
pamac_flatpak_plugin_trans_cancel (PamacFlatpakPlugin* self,
                                   const gchar* sender)
{
	PamacFlatpakPluginIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = PAMAC_FLATPAK_PLUGIN_GET_INTERFACE (self);
	if (_iface_->trans_cancel) {
		_iface_->trans_cancel (self, sender);
	}
}

void
pamac_flatpak_plugin_refresh (PamacFlatpakPlugin* self)
{
	PamacFlatpakPluginIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = PAMAC_FLATPAK_PLUGIN_GET_INTERFACE (self);
	if (_iface_->refresh) {
		_iface_->refresh (self);
	}
}

guint64
pamac_flatpak_plugin_get_refresh_period (PamacFlatpakPlugin* self)
{
	PamacFlatpakPluginIface* _iface_;
	g_return_val_if_fail (self != NULL, 0ULL);
	_iface_ = PAMAC_FLATPAK_PLUGIN_GET_INTERFACE (self);
	if (_iface_->get_refresh_period) {
		return _iface_->get_refresh_period (self);
	}
	return 0ULL;
}

void
pamac_flatpak_plugin_set_refresh_period (PamacFlatpakPlugin* self,
                                         guint64 value)
{
	PamacFlatpakPluginIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = PAMAC_FLATPAK_PLUGIN_GET_INTERFACE (self);
	if (_iface_->set_refresh_period) {
		_iface_->set_refresh_period (self, value);
	}
}

static void
g_cclosure_user_marshal_VOID__STRING_STRING_STRING_DOUBLE (GClosure * closure,
                                                           GValue * return_value,
                                                           guint n_param_values,
                                                           const GValue * param_values,
                                                           gpointer invocation_hint,
                                                           gpointer marshal_data)
{
	typedef void (*GMarshalFunc_VOID__STRING_STRING_STRING_DOUBLE) (gpointer data1, const char* arg_1, const char* arg_2, const char* arg_3, gdouble arg_4, gpointer data2);
	register GMarshalFunc_VOID__STRING_STRING_STRING_DOUBLE callback;
	register GCClosure * cc;
	register gpointer data1;
	register gpointer data2;
	cc = (GCClosure *) closure;
	g_return_if_fail (n_param_values == 5);
	if (G_CCLOSURE_SWAP_DATA (closure)) {
		data1 = closure->data;
		data2 = param_values->data[0].v_pointer;
	} else {
		data1 = param_values->data[0].v_pointer;
		data2 = closure->data;
	}
	callback = (GMarshalFunc_VOID__STRING_STRING_STRING_DOUBLE) (marshal_data ? marshal_data : cc->callback);
	callback (data1, g_value_get_string (param_values + 1), g_value_get_string (param_values + 2), g_value_get_string (param_values + 3), g_value_get_double (param_values + 4), data2);
}

static void
g_cclosure_user_marshal_VOID__STRING_STRING (GClosure * closure,
                                             GValue * return_value,
                                             guint n_param_values,
                                             const GValue * param_values,
                                             gpointer invocation_hint,
                                             gpointer marshal_data)
{
	typedef void (*GMarshalFunc_VOID__STRING_STRING) (gpointer data1, const char* arg_1, const char* arg_2, gpointer data2);
	register GMarshalFunc_VOID__STRING_STRING callback;
	register GCClosure * cc;
	register gpointer data1;
	register gpointer data2;
	cc = (GCClosure *) closure;
	g_return_if_fail (n_param_values == 3);
	if (G_CCLOSURE_SWAP_DATA (closure)) {
		data1 = closure->data;
		data2 = param_values->data[0].v_pointer;
	} else {
		data1 = param_values->data[0].v_pointer;
		data2 = closure->data;
	}
	callback = (GMarshalFunc_VOID__STRING_STRING) (marshal_data ? marshal_data : cc->callback);
	callback (data1, g_value_get_string (param_values + 1), g_value_get_string (param_values + 2), data2);
}

static void
g_cclosure_user_marshal_VOID__STRING_STRING_BOXED_INT (GClosure * closure,
                                                       GValue * return_value,
                                                       guint n_param_values,
                                                       const GValue * param_values,
                                                       gpointer invocation_hint,
                                                       gpointer marshal_data)
{
	typedef void (*GMarshalFunc_VOID__STRING_STRING_BOXED_INT) (gpointer data1, const char* arg_1, const char* arg_2, gpointer arg_3, gint arg_4, gpointer data2);
	register GMarshalFunc_VOID__STRING_STRING_BOXED_INT callback;
	register GCClosure * cc;
	register gpointer data1;
	register gpointer data2;
	cc = (GCClosure *) closure;
	g_return_if_fail (n_param_values == 5);
	if (G_CCLOSURE_SWAP_DATA (closure)) {
		data1 = closure->data;
		data2 = param_values->data[0].v_pointer;
	} else {
		data1 = param_values->data[0].v_pointer;
		data2 = closure->data;
	}
	callback = (GMarshalFunc_VOID__STRING_STRING_BOXED_INT) (marshal_data ? marshal_data : cc->callback);
	callback (data1, g_value_get_string (param_values + 1), g_value_get_string (param_values + 2), g_value_get_boxed (param_values + 3), g_value_get_int (param_values + 4), data2);
}

static void
pamac_flatpak_plugin_default_init (PamacFlatpakPluginIface * iface,
                                   gpointer iface_data)
{
	g_object_interface_install_property (iface, g_param_spec_uint64 ("refresh-period", "refresh-period", "refresh-period", 0, G_MAXUINT64, 0U, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	pamac_flatpak_plugin_signals[PAMAC_FLATPAK_PLUGIN_EMIT_ACTION_PROGRESS_SIGNAL] = g_signal_new ("emit-action-progress", PAMAC_TYPE_FLATPAK_PLUGIN, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__STRING_STRING_STRING_DOUBLE, G_TYPE_NONE, 4, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_DOUBLE);
	pamac_flatpak_plugin_signals[PAMAC_FLATPAK_PLUGIN_EMIT_SCRIPT_OUTPUT_SIGNAL] = g_signal_new ("emit-script-output", PAMAC_TYPE_FLATPAK_PLUGIN, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__STRING_STRING, G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_STRING);
	pamac_flatpak_plugin_signals[PAMAC_FLATPAK_PLUGIN_EMIT_ERROR_SIGNAL] = g_signal_new ("emit-error", PAMAC_TYPE_FLATPAK_PLUGIN, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__STRING_STRING_BOXED_INT, G_TYPE_NONE, 4, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRV, G_TYPE_INT);
}

static GType
pamac_flatpak_plugin_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (PamacFlatpakPluginIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) pamac_flatpak_plugin_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType pamac_flatpak_plugin_type_id;
	pamac_flatpak_plugin_type_id = g_type_register_static (G_TYPE_INTERFACE, "PamacFlatpakPlugin", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (pamac_flatpak_plugin_type_id, G_TYPE_OBJECT);
	return pamac_flatpak_plugin_type_id;
}

GType
pamac_flatpak_plugin_get_type (void)
{
	static volatile gsize pamac_flatpak_plugin_type_id__once = 0;
	if (g_once_init_enter (&pamac_flatpak_plugin_type_id__once)) {
		GType pamac_flatpak_plugin_type_id;
		pamac_flatpak_plugin_type_id = pamac_flatpak_plugin_get_type_once ();
		g_once_init_leave (&pamac_flatpak_plugin_type_id__once, pamac_flatpak_plugin_type_id);
	}
	return pamac_flatpak_plugin_type_id__once;
}

PamacFlatpakPackage*
pamac_flatpak_package_construct (GType object_type)
{
	PamacFlatpakPackage * self = NULL;
	self = (PamacFlatpakPackage*) pamac_package_construct (object_type);
	return self;
}

static void
pamac_flatpak_package_class_init (PamacFlatpakPackageClass * klass,
                                  gpointer klass_data)
{
	pamac_flatpak_package_parent_class = g_type_class_peek_parent (klass);
}

static void
pamac_flatpak_package_instance_init (PamacFlatpakPackage * self,
                                     gpointer klass)
{
}

static GType
pamac_flatpak_package_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (PamacFlatpakPackageClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) pamac_flatpak_package_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PamacFlatpakPackage), 0, (GInstanceInitFunc) pamac_flatpak_package_instance_init, NULL };
	GType pamac_flatpak_package_type_id;
	pamac_flatpak_package_type_id = g_type_register_static (PAMAC_TYPE_PACKAGE, "PamacFlatpakPackage", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
	return pamac_flatpak_package_type_id;
}

GType
pamac_flatpak_package_get_type (void)
{
	static volatile gsize pamac_flatpak_package_type_id__once = 0;
	if (g_once_init_enter (&pamac_flatpak_package_type_id__once)) {
		GType pamac_flatpak_package_type_id;
		pamac_flatpak_package_type_id = pamac_flatpak_package_get_type_once ();
		g_once_init_leave (&pamac_flatpak_package_type_id__once, pamac_flatpak_package_type_id);
	}
	return pamac_flatpak_package_type_id__once;
}

