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

#include <glib.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 GSource FooSource;
typedef struct _BarSource BarSource;
typedef GSource ManamSource;
#define _g_source_unref0(var) ((var == NULL) ? NULL : (var = (g_source_unref (var), NULL)))

struct _BarSource {
	GSource parent_instance;
	gint custom_timeout;
};

static void foo_source_instance_init (FooSource * self);
static void foo_source_finalize (GSource * obj);
static gboolean foo_source_real_prepare (GSource* base,
                                  gint* timeout);
static gboolean foo_source_real_check (GSource* base);
static gboolean foo_source_real_dispatch (GSource* base,
                                   GSourceFunc callback,
                                   gpointer callback_target);
VALA_EXTERN FooSource* foo_source_new (void);
static void bar_source_instance_init (BarSource * self);
static void bar_source_finalize (GSource * obj);
VALA_EXTERN BarSource* bar_source_new (gint timeout);
static gboolean bar_source_real_prepare (GSource* base,
                                  gint* timeout);
static gboolean bar_source_real_check (GSource* base);
static gboolean bar_source_real_dispatch (GSource* base,
                                   GSourceFunc callback,
                                   gpointer callback_target);
static void manam_source_instance_init (ManamSource * self);
static void manam_source_finalize (GSource * obj);
static gboolean manam_source_real_dispatch (GSource* base,
                                     GSourceFunc callback,
                                     gpointer callback_target);
VALA_EXTERN ManamSource* manam_source_new (void);
static void _vala_main (void);

static gboolean
foo_source_real_prepare (GSource* base,
                         gint* timeout)
{
	FooSource * self;
	gint _vala_timeout = 0;
	gboolean result;
	self = (FooSource*) base;
	_vala_timeout = 1000;
	result = FALSE;
	if (timeout) {
		*timeout = _vala_timeout;
	}
	return result;
}

static gboolean
foo_source_real_check (GSource* base)
{
	FooSource * self;
	gboolean result;
	self = (FooSource*) base;
	result = FALSE;
	return result;
}

static gboolean
foo_source_real_dispatch (GSource* base,
                          GSourceFunc callback,
                          gpointer callback_target)
{
	FooSource * self;
	gboolean result;
	self = (FooSource*) base;
	result = FALSE;
	return result;
}

FooSource*
foo_source_new (void)
{
	FooSource* self;
	static const GSourceFuncs _source_funcs = { foo_source_real_prepare, foo_source_real_check, foo_source_real_dispatch, foo_source_finalize};
	self = (FooSource*) g_source_new ((GSourceFuncs *) (&_source_funcs), sizeof (FooSource));
	foo_source_instance_init (self);
	return self;
}

static void
foo_source_instance_init (FooSource * self)
{
}

static void
foo_source_finalize (GSource * obj)
{
	FooSource * self;
	self = (FooSource *) obj;
}

BarSource*
bar_source_new (gint timeout)
{
	BarSource* self;
	static const GSourceFuncs _source_funcs = { bar_source_real_prepare, bar_source_real_check, bar_source_real_dispatch, bar_source_finalize};
	self = (BarSource*) g_source_new ((GSourceFuncs *) (&_source_funcs), sizeof (BarSource));
	bar_source_instance_init (self);
	self->custom_timeout = timeout;
	return self;
}

static gboolean
bar_source_real_prepare (GSource* base,
                         gint* timeout)
{
	BarSource * self;
	gint _vala_timeout = 0;
	gboolean result;
	self = (BarSource*) base;
	_vala_timeout = self->custom_timeout;
	result = FALSE;
	if (timeout) {
		*timeout = _vala_timeout;
	}
	return result;
}

static gboolean
bar_source_real_check (GSource* base)
{
	BarSource * self;
	gboolean result;
	self = (BarSource*) base;
	result = FALSE;
	return result;
}

static gboolean
bar_source_real_dispatch (GSource* base,
                          GSourceFunc callback,
                          gpointer callback_target)
{
	BarSource * self;
	gboolean result;
	self = (BarSource*) base;
	result = FALSE;
	return result;
}

static void
bar_source_instance_init (BarSource * self)
{
}

static void
bar_source_finalize (GSource * obj)
{
	BarSource * self;
	self = (BarSource *) obj;
}

static gboolean
manam_source_real_dispatch (GSource* base,
                            GSourceFunc callback,
                            gpointer callback_target)
{
	ManamSource * self;
	gboolean result;
	self = (ManamSource*) base;
	result = FALSE;
	return result;
}

ManamSource*
manam_source_new (void)
{
	ManamSource* self;
	static const GSourceFuncs _source_funcs = { NULL, NULL, manam_source_real_dispatch, manam_source_finalize};
	self = (ManamSource*) g_source_new ((GSourceFuncs *) (&_source_funcs), sizeof (ManamSource));
	manam_source_instance_init (self);
	return self;
}

static void
manam_source_instance_init (ManamSource * self)
{
}

static void
manam_source_finalize (GSource * obj)
{
	ManamSource * self;
	self = (ManamSource *) obj;
}

static void
_vala_main (void)
{
	FooSource* foo = NULL;
	FooSource* _tmp0_;
	BarSource* bar = NULL;
	BarSource* _tmp1_;
	ManamSource* manam = NULL;
	ManamSource* _tmp2_;
	_tmp0_ = foo_source_new ();
	foo = _tmp0_;
	_tmp1_ = bar_source_new (1000);
	bar = _tmp1_;
	_tmp2_ = manam_source_new ();
	manam = _tmp2_;
	_g_source_unref0 (manam);
	_g_source_unref0 (bar);
	_g_source_unref0 (foo);
}

int
main (int argc,
      char ** argv)
{
	_vala_main ();
	return 0;
}

