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


#include <glib.h>
#include <glib-object.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>


#define TYPE_GVALA (gvala_get_type ())
#define GVALA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_GVALA, GVala))
#define GVALA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_GVALA, GValaClass))
#define IS_GVALA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_GVALA))
#define IS_GVALA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_GVALA))
#define GVALA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_GVALA, GValaClass))

typedef struct _GVala GVala;
typedef struct _GValaClass GValaClass;
typedef struct _GValaPrivate GValaPrivate;

#define TYPE_TXR_OBJECT (txr_object_get_type ())
#define TXR_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TXR_OBJECT, TXRObject))
#define TXR_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TXR_OBJECT, TXRObjectClass))
#define IS_TXR_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TXR_OBJECT))
#define IS_TXR_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TXR_OBJECT))
#define TXR_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TXR_OBJECT, TXRObjectClass))

typedef struct _TXRObject TXRObject;
typedef struct _TXRObjectClass TXRObjectClass;

#define TYPE_TXR_DOC (txr_doc_get_type ())
#define TXR_DOC(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TXR_DOC, TXRDoc))
#define TXR_DOC_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TXR_DOC, TXRDocClass))
#define IS_TXR_DOC(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TXR_DOC))
#define IS_TXR_DOC_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TXR_DOC))
#define TXR_DOC_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TXR_DOC, TXRDocClass))

typedef struct _TXRDoc TXRDoc;
typedef struct _TXRDocClass TXRDocClass;

#define TYPE_TXR_GRAPHICS (txr_graphics_get_type ())
#define TXR_GRAPHICS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TXR_GRAPHICS, TXRGraphics))
#define TXR_GRAPHICS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TXR_GRAPHICS, TXRGraphicsClass))
#define IS_TXR_GRAPHICS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TXR_GRAPHICS))
#define IS_TXR_GRAPHICS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TXR_GRAPHICS))
#define TXR_GRAPHICS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TXR_GRAPHICS, TXRGraphicsClass))

typedef struct _TXRGraphics TXRGraphics;
typedef struct _TXRGraphicsClass TXRGraphicsClass;

#define TYPE_TXR_OBJECT_LIST (txr_object_list_get_type ())
#define TXR_OBJECT_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TXR_OBJECT_LIST, TXRObjectList))
#define TXR_OBJECT_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TXR_OBJECT_LIST, TXRObjectListClass))
#define IS_TXR_OBJECT_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TXR_OBJECT_LIST))
#define IS_TXR_OBJECT_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TXR_OBJECT_LIST))
#define TXR_OBJECT_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TXR_OBJECT_LIST, TXRObjectListClass))

typedef struct _TXRObjectList TXRObjectList;
typedef struct _TXRObjectListClass TXRObjectListClass;

#define TYPE_TXR_ADD_SPACES (txr_add_spaces_get_type ())
#define TXR_ADD_SPACES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TXR_ADD_SPACES, TXRAddSpaces))
#define TXR_ADD_SPACES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TXR_ADD_SPACES, TXRAddSpacesClass))
#define IS_TXR_ADD_SPACES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TXR_ADD_SPACES))
#define IS_TXR_ADD_SPACES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TXR_ADD_SPACES))
#define TXR_ADD_SPACES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TXR_ADD_SPACES, TXRAddSpacesClass))

typedef struct _TXRAddSpaces TXRAddSpaces;
typedef struct _TXRAddSpacesClass TXRAddSpacesClass;

#define TYPE_TXR_DOC_IFACE (txr_doc_iface_get_type ())
#define TXR_DOC_IFACE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TXR_DOC_IFACE, TXRDocIface))
#define IS_TXR_DOC_IFACE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TXR_DOC_IFACE))
#define TXR_DOC_IFACE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_TXR_DOC_IFACE, TXRDocIfaceIface))

typedef struct _TXRDocIface TXRDocIface;
typedef struct _TXRDocIfaceIface TXRDocIfaceIface;
#define _g_free0(var) (var = (g_free (var), NULL))
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))

struct _GVala {
	GObject parent_instance;
	GValaPrivate * priv;
};

struct _GValaClass {
	GObjectClass parent_class;
};

struct _TXRDocIfaceIface {
	GTypeInterface parent_iface;
	gchar* (*gen) (TXRDocIface* self);
};


static gpointer gvala_parent_class = NULL;

GType gvala_get_type (void) G_GNUC_CONST;
enum  {
	GVALA_DUMMY_PROPERTY
};
gint gvala_main (gchar** args, int args_length1);
TXRGraphics* txr_graphics_new (void);
TXRGraphics* txr_graphics_construct (GType object_type);
GType txr_object_get_type (void) G_GNUC_CONST;
GType txr_doc_get_type (void) G_GNUC_CONST;
GType txr_graphics_get_type (void) G_GNUC_CONST;
void txr_object_copy (TXRObject* self, TXRObject* copy);
TXRAddSpaces* txr_add_spaces_new (void);
TXRAddSpaces* txr_add_spaces_construct (GType object_type);
GType txr_object_list_get_type (void) G_GNUC_CONST;
GType txr_add_spaces_get_type (void) G_GNUC_CONST;
GType txr_doc_iface_get_type (void) G_GNUC_CONST;
gchar* txr_doc_iface_gen (TXRDocIface* self);
GVala* gvala_new (void);
GVala* gvala_construct (GType object_type);


gint gvala_main (gchar** args, int args_length1) {
	gint result = 0;
	TXRGraphics* _tmp0_;
	TXRGraphics* graphics1;
	TXRGraphics* _tmp1_;
	TXRGraphics* graphics2;
	TXRAddSpaces* _tmp2_;
	TXRAddSpaces* addspaces;
	FILE* _tmp3_;
	gchar* _tmp4_ = NULL;
	gchar* _tmp5_;
	TXRGraphics* _tmp6_;
	TXRGraphics* graphics;
	FILE* _tmp7_;
	gchar* _tmp8_ = NULL;
	gchar* _tmp9_;
	_tmp0_ = txr_graphics_new ();
	graphics1 = _tmp0_;
	_tmp1_ = txr_graphics_new ();
	graphics2 = _tmp1_;
	txr_object_copy ((TXRObject*) graphics1, (TXRObject*) graphics2);
	_tmp2_ = txr_add_spaces_new ();
	addspaces = _tmp2_;
	_tmp3_ = stdout;
	_tmp4_ = txr_doc_iface_gen ((TXRDocIface*) addspaces);
	_tmp5_ = _tmp4_;
	fprintf (_tmp3_, "addspaces.gen() = %s\n", _tmp5_);
	_g_free0 (_tmp5_);
	_tmp6_ = txr_graphics_new ();
	graphics = _tmp6_;
	_tmp7_ = stdout;
	_tmp8_ = txr_doc_iface_gen ((TXRDocIface*) graphics);
	_tmp9_ = _tmp8_;
	fprintf (_tmp7_, "graphics.gen() = %s\n", _tmp9_);
	_g_free0 (_tmp9_);
	result = 0;
	_g_object_unref0 (graphics);
	_g_object_unref0 (addspaces);
	_g_object_unref0 (graphics2);
	_g_object_unref0 (graphics1);
	return result;
}


int main (int argc, char ** argv) {
	g_type_init ();
	return gvala_main (argv, argc);
}


GVala* gvala_construct (GType object_type) {
	GVala * self = NULL;
	self = (GVala*) g_object_new (object_type, NULL);
	return self;
}


GVala* gvala_new (void) {
	return gvala_construct (TYPE_GVALA);
}


static void gvala_class_init (GValaClass * klass) {
	gvala_parent_class = g_type_class_peek_parent (klass);
}


static void gvala_instance_init (GVala * self) {
}


GType gvala_get_type (void) {
	static volatile gsize gvala_type_id__volatile = 0;
	if (g_once_init_enter (&gvala_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (GValaClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gvala_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GVala), 0, (GInstanceInitFunc) gvala_instance_init, NULL };
		GType gvala_type_id;
		gvala_type_id = g_type_register_static (G_TYPE_OBJECT, "GVala", &g_define_type_info, 0);
		g_once_init_leave (&gvala_type_id__volatile, gvala_type_id);
	}
	return gvala_type_id__volatile;
}



