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


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


#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;
typedef struct _TXRObjectPrivate TXRObjectPrivate;

struct _TXRObject {
	GObject parent_instance;
	TXRObjectPrivate * priv;
	gint object_field;
};

struct _TXRObjectClass {
	GObjectClass parent_class;
	void (*copy) (TXRObject* self, TXRObject* copy);
};


static gpointer txr_object_parent_class = NULL;

GType txr_object_get_type (void) G_GNUC_CONST;
enum  {
	TXR_OBJECT_DUMMY_PROPERTY
};
void txr_object_copy (TXRObject* self, TXRObject* copy);
static void txr_object_real_copy (TXRObject* self, TXRObject* copy);
TXRObject* txr_object_new (void);
TXRObject* txr_object_construct (GType object_type);
static void txr_object_finalize (GObject* obj);


static void txr_object_real_copy (TXRObject* self, TXRObject* copy) {
	FILE* _tmp0_;
	TXRObject* _tmp1_;
	gint _tmp2_;
	g_return_if_fail (copy != NULL);
	_tmp0_ = stdout;
	fprintf (_tmp0_, "TXRObject:copy() called\n");
	_tmp1_ = copy;
	_tmp2_ = self->object_field;
	_tmp1_->object_field = _tmp2_;
}


void txr_object_copy (TXRObject* self, TXRObject* copy) {
	g_return_if_fail (self != NULL);
	TXR_OBJECT_GET_CLASS (self)->copy (self, copy);
}


TXRObject* txr_object_construct (GType object_type) {
	TXRObject * self = NULL;
	self = (TXRObject*) g_object_new (object_type, NULL);
	return self;
}


TXRObject* txr_object_new (void) {
	return txr_object_construct (TYPE_TXR_OBJECT);
}


static void txr_object_class_init (TXRObjectClass * klass) {
	txr_object_parent_class = g_type_class_peek_parent (klass);
	TXR_OBJECT_CLASS (klass)->copy = txr_object_real_copy;
	G_OBJECT_CLASS (klass)->finalize = txr_object_finalize;
}


static void txr_object_instance_init (TXRObject * self) {
}


static void txr_object_finalize (GObject* obj) {
	TXRObject * self;
	self = TXR_OBJECT (obj);
	G_OBJECT_CLASS (txr_object_parent_class)->finalize (obj);
}


GType txr_object_get_type (void) {
	static volatile gsize txr_object_type_id__volatile = 0;
	if (g_once_init_enter (&txr_object_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (TXRObjectClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) txr_object_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TXRObject), 0, (GInstanceInitFunc) txr_object_instance_init, NULL };
		GType txr_object_type_id;
		txr_object_type_id = g_type_register_static (G_TYPE_OBJECT, "TXRObject", &g_define_type_info, 0);
		g_once_init_leave (&txr_object_type_id__volatile, txr_object_type_id);
	}
	return txr_object_type_id__volatile;
}



