/* xmlbird.h generated by valac 0.56.14, the Vala compiler, do not modify */

#ifndef __BUILD_XMLBIRD_XMLBIRD_H__
#define __BUILD_XMLBIRD_XMLBIRD_H__

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

G_BEGIN_DECLS

#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

#define B_TYPE_ATTRIBUTE (b_attribute_get_type ())
#define B_ATTRIBUTE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), B_TYPE_ATTRIBUTE, BAttribute))
#define B_ATTRIBUTE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), B_TYPE_ATTRIBUTE, BAttributeClass))
#define B_IS_ATTRIBUTE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), B_TYPE_ATTRIBUTE))
#define B_IS_ATTRIBUTE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), B_TYPE_ATTRIBUTE))
#define B_ATTRIBUTE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), B_TYPE_ATTRIBUTE, BAttributeClass))

typedef struct _BAttribute BAttribute;
typedef struct _BAttributeClass BAttributeClass;
typedef struct _BAttributePrivate BAttributePrivate;

#define B_TYPE_ATTRIBUTES (b_attributes_get_type ())
#define B_ATTRIBUTES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), B_TYPE_ATTRIBUTES, BAttributes))
#define B_ATTRIBUTES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), B_TYPE_ATTRIBUTES, BAttributesClass))
#define B_IS_ATTRIBUTES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), B_TYPE_ATTRIBUTES))
#define B_IS_ATTRIBUTES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), B_TYPE_ATTRIBUTES))
#define B_ATTRIBUTES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), B_TYPE_ATTRIBUTES, BAttributesClass))

typedef struct _BAttributes BAttributes;
typedef struct _BAttributesClass BAttributesClass;
typedef struct _BAttributesPrivate BAttributesPrivate;

#define B_ATTRIBUTES_TYPE_ITERATOR (b_attributes_iterator_get_type ())
#define B_ATTRIBUTES_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), B_ATTRIBUTES_TYPE_ITERATOR, BAttributesIterator))
#define B_ATTRIBUTES_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), B_ATTRIBUTES_TYPE_ITERATOR, BAttributesIteratorClass))
#define B_ATTRIBUTES_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), B_ATTRIBUTES_TYPE_ITERATOR))
#define B_ATTRIBUTES_IS_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), B_ATTRIBUTES_TYPE_ITERATOR))
#define B_ATTRIBUTES_ITERATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), B_ATTRIBUTES_TYPE_ITERATOR, BAttributesIteratorClass))

typedef struct _BAttributesIterator BAttributesIterator;
typedef struct _BAttributesIteratorClass BAttributesIteratorClass;
typedef struct _BAttributesIteratorPrivate BAttributesIteratorPrivate;

#define B_TYPE_TAG (b_tag_get_type ())
#define B_TAG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), B_TYPE_TAG, BTag))
#define B_TAG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), B_TYPE_TAG, BTagClass))
#define B_IS_TAG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), B_TYPE_TAG))
#define B_IS_TAG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), B_TYPE_TAG))
#define B_TAG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), B_TYPE_TAG, BTagClass))

typedef struct _BTag BTag;
typedef struct _BTagClass BTagClass;
typedef struct _BTagPrivate BTagPrivate;

#define B_TYPE_XML_STRING (b_xml_string_get_type ())
#define B_XML_STRING(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), B_TYPE_XML_STRING, BXmlString))
#define B_XML_STRING_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), B_TYPE_XML_STRING, BXmlStringClass))
#define B_IS_XML_STRING(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), B_TYPE_XML_STRING))
#define B_IS_XML_STRING_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), B_TYPE_XML_STRING))
#define B_XML_STRING_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), B_TYPE_XML_STRING, BXmlStringClass))

typedef struct _BXmlString BXmlString;
typedef struct _BXmlStringClass BXmlStringClass;

#define B_TYPE_XML_DATA (b_xml_data_get_type ())
#define B_XML_DATA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), B_TYPE_XML_DATA, BXmlData))
#define B_XML_DATA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), B_TYPE_XML_DATA, BXmlDataClass))
#define B_IS_XML_DATA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), B_TYPE_XML_DATA))
#define B_IS_XML_DATA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), B_TYPE_XML_DATA))
#define B_XML_DATA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), B_TYPE_XML_DATA, BXmlDataClass))

typedef struct _BXmlData BXmlData;
typedef struct _BXmlDataClass BXmlDataClass;

#define B_TAG_TYPE_ITERATOR (b_tag_iterator_get_type ())
#define B_TAG_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), B_TAG_TYPE_ITERATOR, BTagIterator))
#define B_TAG_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), B_TAG_TYPE_ITERATOR, BTagIteratorClass))
#define B_TAG_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), B_TAG_TYPE_ITERATOR))
#define B_TAG_IS_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), B_TAG_TYPE_ITERATOR))
#define B_TAG_ITERATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), B_TAG_TYPE_ITERATOR, BTagIteratorClass))

typedef struct _BTagIterator BTagIterator;
typedef struct _BTagIteratorClass BTagIteratorClass;
typedef struct _BTagIteratorPrivate BTagIteratorPrivate;

#define B_TYPE_XML_PARSER (b_xml_parser_get_type ())
#define B_XML_PARSER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), B_TYPE_XML_PARSER, BXmlParser))
#define B_XML_PARSER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), B_TYPE_XML_PARSER, BXmlParserClass))
#define B_IS_XML_PARSER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), B_TYPE_XML_PARSER))
#define B_IS_XML_PARSER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), B_TYPE_XML_PARSER))
#define B_XML_PARSER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), B_TYPE_XML_PARSER, BXmlParserClass))

typedef struct _BXmlParser BXmlParser;
typedef struct _BXmlParserClass BXmlParserClass;
typedef struct _BXmlParserPrivate BXmlParserPrivate;

#define B_TYPE_XML_ELEMENT (b_xml_element_get_type ())
#define B_XML_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), B_TYPE_XML_ELEMENT, BXmlElement))
#define B_XML_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), B_TYPE_XML_ELEMENT, BXmlElementClass))
#define B_IS_XML_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), B_TYPE_XML_ELEMENT))
#define B_IS_XML_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), B_TYPE_XML_ELEMENT))
#define B_XML_ELEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), B_TYPE_XML_ELEMENT, BXmlElementClass))

typedef struct _BXmlElement BXmlElement;
typedef struct _BXmlElementClass BXmlElementClass;
typedef struct _BXmlElementPrivate BXmlElementPrivate;

#define B_XML_ELEMENT_TYPE_ITERATOR (b_xml_element_iterator_get_type ())
#define B_XML_ELEMENT_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), B_XML_ELEMENT_TYPE_ITERATOR, BXmlElementIterator))
#define B_XML_ELEMENT_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), B_XML_ELEMENT_TYPE_ITERATOR, BXmlElementIteratorClass))
#define B_XML_ELEMENT_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), B_XML_ELEMENT_TYPE_ITERATOR))
#define B_XML_ELEMENT_IS_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), B_XML_ELEMENT_TYPE_ITERATOR))
#define B_XML_ELEMENT_ITERATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), B_XML_ELEMENT_TYPE_ITERATOR, BXmlElementIteratorClass))

typedef struct _BXmlElementIterator BXmlElementIterator;
typedef struct _BXmlElementIteratorClass BXmlElementIteratorClass;
typedef struct _BXmlElementIteratorPrivate BXmlElementIteratorPrivate;

#define B_TYPE_XML_TREE (b_xml_tree_get_type ())
#define B_XML_TREE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), B_TYPE_XML_TREE, BXmlTree))
#define B_XML_TREE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), B_TYPE_XML_TREE, BXmlTreeClass))
#define B_IS_XML_TREE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), B_TYPE_XML_TREE))
#define B_IS_XML_TREE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), B_TYPE_XML_TREE))
#define B_XML_TREE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), B_TYPE_XML_TREE, BXmlTreeClass))

typedef struct _BXmlTree BXmlTree;
typedef struct _BXmlTreeClass BXmlTreeClass;
typedef struct _BXmlTreePrivate BXmlTreePrivate;

struct _BAttribute {
	GObject parent_instance;
	BAttributePrivate * priv;
};

struct _BAttributeClass {
	GObjectClass parent_class;
};

struct _BAttributes {
	GObject parent_instance;
	BAttributesPrivate * priv;
};

struct _BAttributesClass {
	GObjectClass parent_class;
};

struct _BAttributesIterator {
	GObject parent_instance;
	BAttributesIteratorPrivate * priv;
};

struct _BAttributesIteratorClass {
	GObjectClass parent_class;
};

struct _BTag {
	GObject parent_instance;
	BTagPrivate * priv;
	BXmlData* entire_file;
	gint log_level;
};

struct _BTagClass {
	GObjectClass parent_class;
};

struct _BTagIterator {
	GObject parent_instance;
	BTagIteratorPrivate * priv;
};

struct _BTagIteratorClass {
	GObjectClass parent_class;
};

struct _BXmlParser {
	GObject parent_instance;
	BXmlParserPrivate * priv;
};

struct _BXmlParserClass {
	GObjectClass parent_class;
};

struct _BXmlElement {
	GObject parent_instance;
	BXmlElementPrivate * priv;
};

struct _BXmlElementClass {
	GObjectClass parent_class;
};

struct _BXmlElementIterator {
	GObject parent_instance;
	BXmlElementIteratorPrivate * priv;
};

struct _BXmlElementIteratorClass {
	GObjectClass parent_class;
};

struct _BXmlTree {
	GObject parent_instance;
	BXmlTreePrivate * priv;
};

struct _BXmlTreeClass {
	GObjectClass parent_class;
};

VALA_EXTERN GType b_attribute_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (BAttribute, g_object_unref)
VALA_EXTERN gchar* b_attribute_get_namespace (BAttribute* self);
VALA_EXTERN gchar* b_attribute_get_name (BAttribute* self);
VALA_EXTERN gchar* b_attribute_get_content (BAttribute* self);
VALA_EXTERN GType b_attributes_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (BAttributes, g_object_unref)
VALA_EXTERN GType b_attributes_iterator_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (BAttributesIterator, g_object_unref)
VALA_EXTERN BAttributesIterator* b_attributes_iterator (BAttributes* self);
VALA_EXTERN gboolean b_attributes_iterator_next (BAttributesIterator* self);
VALA_EXTERN BAttribute* b_attributes_iterator_get (BAttributesIterator* self);
VALA_EXTERN GType b_tag_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (BTag, g_object_unref)
VALA_EXTERN GType b_xml_string_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (BXmlString, g_object_unref)
VALA_EXTERN GType b_xml_data_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (BXmlData, g_object_unref)
VALA_EXTERN BAttributes* b_tag_get_attributes (BTag* self);
VALA_EXTERN GType b_tag_iterator_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (BTagIterator, g_object_unref)
VALA_EXTERN BTagIterator* b_tag_iterator (BTag* self);
VALA_EXTERN void b_tag_reparse (BTag* self);
VALA_EXTERN gchar* b_tag_get_namespace (BTag* self);
VALA_EXTERN gchar* b_tag_get_name (BTag* self);
VALA_EXTERN gchar* b_tag_get_content (BTag* self);
VALA_EXTERN gboolean b_tag_iterator_next (BTagIterator* self);
VALA_EXTERN BTag* b_tag_iterator_get (BTagIterator* self);
VALA_EXTERN GType b_xml_parser_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (BXmlParser, g_object_unref)
VALA_EXTERN BXmlParser* b_xml_parser_new (const gchar* data);
VALA_EXTERN BXmlParser* b_xml_parser_construct (GType object_type,
                                    const gchar* data);
VALA_EXTERN gboolean b_xml_parser_validate (BXmlParser* self);
VALA_EXTERN BTag* b_xml_parser_get_root_tag (BXmlParser* self);
VALA_EXTERN gchar* b_xml_parser_decode (const gchar* s);
VALA_EXTERN gchar* b_xml_parser_encode (const gchar* s);
VALA_EXTERN GType b_xml_element_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (BXmlElement, g_object_unref)
VALA_EXTERN BXmlElement* b_xml_element_new_empty (void);
VALA_EXTERN BXmlElement* b_xml_element_construct_empty (GType object_type);
VALA_EXTERN BAttributes* b_xml_element_get_attributes (BXmlElement* self);
VALA_EXTERN BXmlElement* b_xml_element_get_parent (BXmlElement* self);
VALA_EXTERN gboolean b_xml_element_is_leaf (BXmlElement* self);
VALA_EXTERN gchar* b_xml_element_get_name (BXmlElement* self);
VALA_EXTERN gchar* b_xml_element_get_namespace (BXmlElement* self);
VALA_EXTERN gchar* b_xml_element_get_content (BXmlElement* self);
VALA_EXTERN GType b_xml_element_iterator_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (BXmlElementIterator, g_object_unref)
VALA_EXTERN BXmlElementIterator* b_xml_element_iterator (BXmlElement* self);
VALA_EXTERN gboolean b_xml_element_iterator_next (BXmlElementIterator* self);
VALA_EXTERN BXmlElement* b_xml_element_iterator_get (BXmlElementIterator* self);
VALA_EXTERN GType b_xml_tree_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (BXmlTree, g_object_unref)
VALA_EXTERN BXmlTree* b_xml_tree_new (const gchar* xml);
VALA_EXTERN BXmlTree* b_xml_tree_construct (GType object_type,
                                const gchar* xml);
VALA_EXTERN BXmlTree* b_xml_tree_new_for_tag (BTag* root);
VALA_EXTERN BXmlTree* b_xml_tree_construct_for_tag (GType object_type,
                                        BTag* root);
VALA_EXTERN BXmlElement* b_xml_tree_get_root (BXmlTree* self);
VALA_EXTERN gboolean b_xml_tree_validate (BXmlTree* self);

G_END_DECLS

#endif
