/* vbfsource.c generated by valac 0.12.1.1-323029-dirty, the Vala compiler
 * generated from vbfsource.vala, do not modify */

/*
 *  vbfsource.vala - Vala Build Framework library
 *  
 *  Copyright (C) 2008 - Andrea Del Signore <sejerpz@tin.it>
 *  
 *  This library is free software; you can redistribute it and/or
 *  modify it under the terms of the GNU Lesser General Public
 *  License as published by the Free Software Foundation; either
 *  version 2.1 of the License, or (at your option) any later version.
 *
 *  This library 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
 *  Lesser General Public License for more details.
 *
 *  You should have received a copy of the GNU Lesser General Public
 *  License along with this library; if not, write to the Free Software
 *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301  USA
 */

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


#define VBF_TYPE_FILE (vbf_file_get_type ())
#define VBF_FILE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VBF_TYPE_FILE, VbfFile))
#define VBF_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VBF_TYPE_FILE, VbfFileClass))
#define VBF_IS_FILE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VBF_TYPE_FILE))
#define VBF_IS_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VBF_TYPE_FILE))
#define VBF_FILE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VBF_TYPE_FILE, VbfFileClass))

typedef struct _VbfFile VbfFile;
typedef struct _VbfFileClass VbfFileClass;
typedef struct _VbfFilePrivate VbfFilePrivate;

#define VBF_TYPE_FILE_TYPES (vbf_file_types_get_type ())

#define VBF_TYPE_TARGET (vbf_target_get_type ())
#define VBF_TARGET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VBF_TYPE_TARGET, VbfTarget))
#define VBF_TARGET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VBF_TYPE_TARGET, VbfTargetClass))
#define VBF_IS_TARGET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VBF_TYPE_TARGET))
#define VBF_IS_TARGET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VBF_TYPE_TARGET))
#define VBF_TARGET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VBF_TYPE_TARGET, VbfTargetClass))

typedef struct _VbfTarget VbfTarget;
typedef struct _VbfTargetClass VbfTargetClass;

#define VBF_TYPE_SOURCE (vbf_source_get_type ())
#define VBF_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VBF_TYPE_SOURCE, VbfSource))
#define VBF_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VBF_TYPE_SOURCE, VbfSourceClass))
#define VBF_IS_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VBF_TYPE_SOURCE))
#define VBF_IS_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VBF_TYPE_SOURCE))
#define VBF_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VBF_TYPE_SOURCE, VbfSourceClass))

typedef struct _VbfSource VbfSource;
typedef struct _VbfSourceClass VbfSourceClass;
typedef struct _VbfSourcePrivate VbfSourcePrivate;

typedef enum  {
	VBF_FILE_TYPES_UNKNOWN,
	VBF_FILE_TYPES_DATA,
	VBF_FILE_TYPES_VALA_SOURCE,
	VBF_FILE_TYPES_OTHER_SOURCE
} VbfFileTypes;

struct _VbfFile {
	GObject parent_instance;
	VbfFilePrivate * priv;
	gchar* name;
	gchar* filename;
	gchar* uri;
	VbfFileTypes type;
	VbfTarget* target;
};

struct _VbfFileClass {
	GObjectClass parent_class;
};

struct _VbfSource {
	VbfFile parent_instance;
	VbfSourcePrivate * priv;
};

struct _VbfSourceClass {
	VbfFileClass parent_class;
};


static gpointer vbf_source_parent_class = NULL;

GType vbf_file_get_type (void) G_GNUC_CONST;
GType vbf_file_types_get_type (void) G_GNUC_CONST;
GType vbf_target_get_type (void) G_GNUC_CONST;
GType vbf_source_get_type (void) G_GNUC_CONST;
enum  {
	VBF_SOURCE_DUMMY_PROPERTY
};
VbfSource* vbf_source_new (VbfTarget* target, const gchar* filename);
VbfSource* vbf_source_construct (GType object_type, VbfTarget* target, const gchar* filename);
VbfSource* vbf_source_new_with_type (VbfTarget* target, const gchar* filename, VbfFileTypes type);
VbfSource* vbf_source_construct_with_type (GType object_type, VbfTarget* target, const gchar* filename, VbfFileTypes type);
VbfFile* vbf_file_new_with_type (VbfTarget* target, const gchar* filename, VbfFileTypes type);
VbfFile* vbf_file_construct_with_type (GType object_type, VbfTarget* target, const gchar* filename, VbfFileTypes type);


VbfSource* vbf_source_construct (GType object_type, VbfTarget* target, const gchar* filename) {
	VbfSource * self = NULL;
	g_return_val_if_fail (target != NULL, NULL);
	g_return_val_if_fail (filename != NULL, NULL);
	self = (VbfSource*) vbf_source_construct_with_type (object_type, target, filename, VBF_FILE_TYPES_UNKNOWN);
	return self;
}


VbfSource* vbf_source_new (VbfTarget* target, const gchar* filename) {
	return vbf_source_construct (VBF_TYPE_SOURCE, target, filename);
}


VbfSource* vbf_source_construct_with_type (GType object_type, VbfTarget* target, const gchar* filename, VbfFileTypes type) {
	VbfSource * self = NULL;
	g_return_val_if_fail (target != NULL, NULL);
	g_return_val_if_fail (filename != NULL, NULL);
	self = (VbfSource*) vbf_file_construct_with_type (object_type, target, filename, type);
	return self;
}


VbfSource* vbf_source_new_with_type (VbfTarget* target, const gchar* filename, VbfFileTypes type) {
	return vbf_source_construct_with_type (VBF_TYPE_SOURCE, target, filename, type);
}


static void vbf_source_class_init (VbfSourceClass * klass) {
	vbf_source_parent_class = g_type_class_peek_parent (klass);
}


static void vbf_source_instance_init (VbfSource * self) {
}


GType vbf_source_get_type (void) {
	static volatile gsize vbf_source_type_id__volatile = 0;
	if (g_once_init_enter (&vbf_source_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (VbfSourceClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) vbf_source_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (VbfSource), 0, (GInstanceInitFunc) vbf_source_instance_init, NULL };
		GType vbf_source_type_id;
		vbf_source_type_id = g_type_register_static (VBF_TYPE_FILE, "VbfSource", &g_define_type_info, 0);
		g_once_init_leave (&vbf_source_type_id__volatile, vbf_source_type_id);
	}
	return vbf_source_type_id__volatile;
}



