XbBuilderSource: libxmlb Reference Manual

## XbBuilderSource XbBuilderSource |

## Functions

gboolean | (*XbBuilderSourceNodeFunc) ()
GInputStream * | (*XbBuilderSourceConverterFunc) ()
XbBuilderSource * | xb_builder_source_new ()
gboolean | xb_builder_source_load_file ()
gboolean | xb_builder_source_load_xml ()
gboolean | xb_builder_source_load_bytes ()
void | xb_builder_source_set_info ()
void | xb_builder_source_set_prefix ()
void | xb_builder_source_add_node_func ()
void | xb_builder_source_add_fixup ()
void | xb_builder_source_add_converter ()

## Types and Values

#define | XB_TYPE_BUILDER_SOURCE
struct | XbBuilderSourceClass
enum | XbBuilderSourceFlags
| XbBuilderSource

## Description

## Functions

### XbBuilderSourceNodeFunc ()

    gboolean
    (*XbBuilderSourceNodeFunc) (XbBuilderSource *self,
                                XbBuilderNode *bn,
                                gpointer user_data,
                                GError **error);

### XbBuilderSourceConverterFunc ()

    GInputStream *
    (*XbBuilderSourceConverterFunc) (XbBuilderSource *self,
                                     GFile *file,
                                     gpointer user_data,
                                     GCancellable *cancellable,
                                     GError **error);

### xb_builder_source_new ()

    XbBuilderSource *
    xb_builder_source_new (void);

Creates a new builder source.

#### Returns

a new XbBuilderSource

Since: 0.1.1

### xb_builder_source_load_file ()

    gboolean
    xb_builder_source_load_file (XbBuilderSource *self,
                                 GFile *file,
                                 XbBuilderSourceFlags flags,
                                 GCancellable *cancellable,
                                 GError **error);

Loads an optionally compressed XML file to build a XbSilo.

#### Parameters

self | a XbBuilderSource |
file | a GFile |
flags | some XbBuilderSourceFlags, e.g. `XB_BUILDER_SOURCE_FLAG_LITERAL_TEXT` |
cancellable | a GCancellable, or `NULL` |
error | the GError, or `NULL` |

#### Returns

`TRUE` for success

Since: 0.1.1

### xb_builder_source_load_xml ()

    gboolean
    xb_builder_source_load_xml (XbBuilderSource *self,
                                const gchar *xml,
                                XbBuilderSourceFlags flags,
                                GError **error);

Loads XML data and begins to build a XbSilo.

#### Parameters

self | a XbBuilderSource |
xml | XML data |
flags | some XbBuilderSourceFlags, e.g. `XB_BUILDER_SOURCE_FLAG_LITERAL_TEXT` |
error | the GError, or `NULL` |

#### Returns

`TRUE` for success

Since: 0.1.1

### xb_builder_source_load_bytes ()

    gboolean
    xb_builder_source_load_bytes (XbBuilderSource *self,
                                  GBytes *bytes,
                                  XbBuilderSourceFlags flags,
                                  GError **error);

Loads XML data and begins to build a XbSilo.

#### Parameters

self | a XbBuilderSource |
bytes | a GBytes |
flags | some XbBuilderSourceFlags, e.g. `XB_BUILDER_SOURCE_FLAG_LITERAL_TEXT` |
error | the GError, or `NULL` |

#### Returns

`TRUE` for success

Since: 0.1.2

### xb_builder_source_set_info ()

    void
    xb_builder_source_set_info (XbBuilderSource *self,
                                XbBuilderNode *info);

Sets an optional information metadata node on the root node.

#### Parameters

self | a XbBuilderSource |
info | a XbBuilderNode. | [allow-none]

Since: 0.1.0

### xb_builder_source_set_prefix ()

    void
    xb_builder_source_set_prefix (XbBuilderSource *self,
                                  const gchar *prefix);

Sets an optional prefix on the root node. This makes any nodes added using this source reside under a common shared parent node.

#### Parameters

self | a XbBuilderSource |
prefix | an XPath prefix, e.g. `installed`. | [allow-none]

Since: 0.1.0

### xb_builder_source_add_node_func ()

    void
    xb_builder_source_add_node_func (XbBuilderSource *self,
                                     const gchar *id,
                                     XbBuilderSourceNodeFunc func,
                                     gpointer user_data,
                                     GDestroyNotify user_data_free);

`xb_builder_source_add_node_func` is deprecated and should not be used in newly-written code.

Adds a function that will get run on every XbBuilderNode compile creates.

#### Parameters

self | a XbBuilderSource |
id | a text ID value, e.g. `AppStreamUpgrade` |
func | a callback |
user_data | user pointer to pass to `func` , or `NULL` |
user_data_free | a function which gets called to free `user_data` , or `NULL` |

Since: 0.1.0

### xb_builder_source_add_fixup ()

    void
    xb_builder_source_add_fixup (XbBuilderSource *self,
                                 XbBuilderFixup *fixup);

Adds a function that will get run on every XbBuilderNode compile creates with this source.

#### Parameters

self | a XbBuilderSource |
fixup | a XbBuilderFixup |

Since: 0.1.3

### xb_builder_source_add_converter ()

    void
    xb_builder_source_add_converter (XbBuilderSource *self,
                                     const gchar *content_types,
                                     XbBuilderSourceConverterFunc func,
                                     gpointer user_data,
                                     GDestroyNotify user_data_free);

Adds a function that can be used to convert files loaded with `xb_builder_source_load_xml()`.

#### Parameters

self | a XbBuilderSource |
content_types | mimetypes, e.g. `application/x-desktop,application/gzip` |
func | a callback |
user_data | user pointer to pass to `func` , or `NULL` |
user_data_free | a function which gets called to free `user_data` , or `NULL` |

Since: 0.1.1

## Types and Values

### XB_TYPE_BUILDER_SOURCE

    #define             XB_TYPE_BUILDER_SOURCE

### struct XbBuilderSourceClass

    struct XbBuilderSourceClass {
    	GObjectClass			 parent_class;
    };

### enum XbBuilderSourceFlags

The flags for converting to XML.

#### Members

XB_BUILDER_SOURCE_FLAG_NONE |  |
XB_BUILDER_SOURCE_FLAG_LITERAL_TEXT |  |
XB_BUILDER_SOURCE_FLAG_WATCH_FILE |  |

### XbBuilderSource

    typedef struct _XbBuilderSource XbBuilderSource;