## XbSilo XbSilo |

## Functions

XbSilo * | xb_silo_new ()
XbSilo * | xb_silo_new_from_xml ()
GBytes * | xb_silo_get_bytes ()
gboolean | xb_silo_load_from_bytes ()
gboolean | xb_silo_load_from_file ()
gboolean | xb_silo_save_to_file ()
gchar * | xb_silo_to_string ()
guint | xb_silo_get_size ()
const gchar * | xb_silo_get_guid ()
XbNode * | xb_silo_get_root ()
void | xb_silo_invalidate ()
gboolean | xb_silo_is_valid ()
gboolean | xb_silo_watch_file ()
void | xb_silo_set_profile_flags ()
const gchar * | xb_silo_get_profile_string ()
gboolean | xb_silo_get_enable_node_cache ()
void | xb_silo_set_enable_node_cache ()
XbQuery * | xb_silo_lookup_query ()

## Types and Values

#define | XB_TYPE_SILO
struct | XbSiloClass
enum | XbSiloLoadFlags
enum | XbSiloProfileFlags
| XbSilo

## Description

## Functions

### xb_silo_new ()

    XbSilo *
    xb_silo_new (void);

### xb_silo_new_from_xml ()

    XbSilo *
    xb_silo_new_from_xml (const gchar *xml,
                          GError **error);

### xb_silo_get_bytes ()

    GBytes *
    xb_silo_get_bytes (XbSilo *self);

### xb_silo_load_from_bytes ()

    gboolean
    xb_silo_load_from_bytes (XbSilo *self,
                             GBytes *blob,
                             XbSiloLoadFlags flags,
                             GError **error);

### xb_silo_load_from_file ()

    gboolean
    xb_silo_load_from_file (XbSilo *self,
                            GFile *file,
                            XbSiloLoadFlags flags,
                            GCancellable *cancellable,
                            GError **error);

### xb_silo_save_to_file ()

    gboolean
    xb_silo_save_to_file (XbSilo *self,
                          GFile *file,
                          GCancellable *cancellable,
                          GError **error);

### xb_silo_to_string ()

    gchar *
    xb_silo_to_string (XbSilo *self,
                       GError **error);

### xb_silo_get_size ()

    guint
    xb_silo_get_size (XbSilo *self);

### xb_silo_get_guid ()

    const gchar *
    xb_silo_get_guid (XbSilo *self);

### xb_silo_get_root ()

    XbNode *
    xb_silo_get_root (XbSilo *self);

### xb_silo_invalidate ()

    void
    xb_silo_invalidate (XbSilo *self);

### xb_silo_is_valid ()

    gboolean
    xb_silo_is_valid (XbSilo *self);

### xb_silo_watch_file ()

    gboolean
    xb_silo_watch_file (XbSilo *self,
                        GFile *file,
                        GCancellable *cancellable,
                        GError **error);

### xb_silo_set_profile_flags ()

    void
    xb_silo_set_profile_flags (XbSilo *self,
                               XbSiloProfileFlags profile_flags);

### xb_silo_get_profile_string ()

    const gchar *
    xb_silo_get_profile_string (XbSilo *self);

### xb_silo_get_enable_node_cache ()

    gboolean
    xb_silo_get_enable_node_cache (XbSilo *self);

### xb_silo_set_enable_node_cache ()

    void
    xb_silo_set_enable_node_cache (XbSilo *self,
                                   gboolean enable_node_cache);

### xb_silo_lookup_query ()

    XbQuery *
    xb_silo_lookup_query (XbSilo *self,
                          const gchar *xpath);

## Types and Values

### XB_TYPE_SILO

    #define XB_TYPE_SILO (xb_silo_get_type ())

### struct XbSiloClass

    struct XbSiloClass {
    	GObjectClass			 parent_class;
    };

### enum XbSiloLoadFlags

The flags for loading a silo.

#### Members

XB_SILO_LOAD_FLAG_NONE | No extra flags to use |
XB_SILO_LOAD_FLAG_NO_MAGIC | No not check header signature |
XB_SILO_LOAD_FLAG_WATCH_BLOB | Watch the XMLB file for changes |

### enum XbSiloProfileFlags

The flags used when profiling a silo.

#### Members

XB_SILO_PROFILE_FLAG_NONE | No extra flags to use |
XB_SILO_PROFILE_FLAG_DEBUG | Output profiling as debug |
XB_SILO_PROFILE_FLAG_APPEND | Save profiling in an appended string |
XB_SILO_PROFILE_FLAG_XPATH | Save XPATH queries |
XB_SILO_PROFILE_FLAG_OPTIMIZER | Output the machine optimizer as debug |

### XbSilo

    typedef struct _XbSilo XbSilo;