|
Packit |
caecb6 |
/*
|
|
Packit |
caecb6 |
* Copyright (C) 2018 Richard Hughes <richard@hughsie.com>
|
|
Packit |
caecb6 |
*
|
|
Packit |
caecb6 |
* SPDX-License-Identifier: LGPL-2.1+
|
|
Packit |
caecb6 |
*/
|
|
Packit |
caecb6 |
|
|
Packit |
caecb6 |
#pragma once
|
|
Packit |
caecb6 |
|
|
Packit |
caecb6 |
#include <gio/gio.h>
|
|
Packit |
caecb6 |
|
|
Packit |
caecb6 |
#include "xb-builder-fixup.h"
|
|
Packit |
caecb6 |
#include "xb-builder-source.h"
|
|
Packit |
caecb6 |
#include "xb-builder-node.h"
|
|
Packit |
caecb6 |
#include "xb-silo.h"
|
|
Packit |
caecb6 |
|
|
Packit |
caecb6 |
G_BEGIN_DECLS
|
|
Packit |
caecb6 |
|
|
Packit |
caecb6 |
#define XB_TYPE_BUILDER (xb_builder_get_type ())
|
|
Packit |
caecb6 |
|
|
Packit |
caecb6 |
G_DECLARE_DERIVABLE_TYPE (XbBuilder, xb_builder, XB, BUILDER, GObject)
|
|
Packit |
caecb6 |
|
|
Packit |
caecb6 |
struct _XbBuilderClass {
|
|
Packit |
caecb6 |
GObjectClass parent_class;
|
|
Packit |
caecb6 |
/*< private >*/
|
|
Packit |
caecb6 |
void (*_xb_reserved1) (void);
|
|
Packit |
caecb6 |
void (*_xb_reserved2) (void);
|
|
Packit |
caecb6 |
void (*_xb_reserved3) (void);
|
|
Packit |
caecb6 |
void (*_xb_reserved4) (void);
|
|
Packit |
caecb6 |
void (*_xb_reserved5) (void);
|
|
Packit |
caecb6 |
void (*_xb_reserved6) (void);
|
|
Packit |
caecb6 |
void (*_xb_reserved7) (void);
|
|
Packit |
caecb6 |
};
|
|
Packit |
caecb6 |
|
|
Packit |
caecb6 |
/**
|
|
Packit |
caecb6 |
* XbBuilderCompileFlags:
|
|
Packit |
caecb6 |
* @XB_BUILDER_COMPILE_FLAG_NONE: No extra flags to use
|
|
Packit |
caecb6 |
* @XB_BUILDER_COMPILE_FLAG_NATIVE_LANGS: Only load native languages
|
|
Packit |
caecb6 |
* @XB_BUILDER_COMPILE_FLAG_IGNORE_INVALID: Ignore invalid files without an error
|
|
Packit |
caecb6 |
* @XB_BUILDER_COMPILE_FLAG_SINGLE_LANG: Only store a single language
|
|
Packit |
caecb6 |
* @XB_BUILDER_COMPILE_FLAG_WATCH_BLOB: Watch the XMLB file for changes
|
|
Packit |
caecb6 |
* @XB_BUILDER_COMPILE_FLAG_IGNORE_GUID: Ignore the cache GUID value
|
|
Packit |
caecb6 |
*
|
|
Packit |
caecb6 |
* The flags for converting to XML.
|
|
Packit |
caecb6 |
**/
|
|
Packit |
caecb6 |
typedef enum {
|
|
Packit |
caecb6 |
XB_BUILDER_COMPILE_FLAG_NONE = 0, /* Since: 0.1.0 */
|
|
Packit |
caecb6 |
XB_BUILDER_COMPILE_FLAG_NATIVE_LANGS = 1 << 1, /* Since: 0.1.0 */
|
|
Packit |
caecb6 |
XB_BUILDER_COMPILE_FLAG_IGNORE_INVALID = 1 << 2, /* Since: 0.1.0 */
|
|
Packit |
caecb6 |
XB_BUILDER_COMPILE_FLAG_SINGLE_LANG = 1 << 3, /* Since: 0.1.0 */
|
|
Packit |
caecb6 |
XB_BUILDER_COMPILE_FLAG_WATCH_BLOB = 1 << 4, /* Since: 0.1.0 */
|
|
Packit |
caecb6 |
XB_BUILDER_COMPILE_FLAG_IGNORE_GUID = 1 << 5, /* Since: 0.1.7 */
|
|
Packit |
caecb6 |
/*< private >*/
|
|
Packit |
caecb6 |
XB_BUILDER_COMPILE_FLAG_LAST
|
|
Packit |
caecb6 |
} XbBuilderCompileFlags;
|
|
Packit |
caecb6 |
|
|
Packit |
caecb6 |
XbBuilder *xb_builder_new (void);
|
|
Packit |
caecb6 |
void xb_builder_append_guid (XbBuilder *self,
|
|
Packit |
caecb6 |
const gchar *guid);
|
|
Packit |
caecb6 |
void xb_builder_import_source (XbBuilder *self,
|
|
Packit |
caecb6 |
XbBuilderSource *source);
|
|
Packit |
caecb6 |
void xb_builder_import_node (XbBuilder *self,
|
|
Packit |
caecb6 |
XbBuilderNode *bn);
|
|
Packit |
caecb6 |
XbSilo *xb_builder_compile (XbBuilder *self,
|
|
Packit |
caecb6 |
XbBuilderCompileFlags flags,
|
|
Packit |
caecb6 |
GCancellable *cancellable,
|
|
Packit |
caecb6 |
GError **error);
|
|
Packit |
caecb6 |
XbSilo *xb_builder_ensure (XbBuilder *self,
|
|
Packit |
caecb6 |
GFile *file,
|
|
Packit |
caecb6 |
XbBuilderCompileFlags flags,
|
|
Packit |
caecb6 |
GCancellable *cancellable,
|
|
Packit |
caecb6 |
GError **error);
|
|
Packit |
caecb6 |
void xb_builder_add_locale (XbBuilder *self,
|
|
Packit |
caecb6 |
const gchar *locale);
|
|
Packit |
caecb6 |
void xb_builder_add_fixup (XbBuilder *self,
|
|
Packit |
caecb6 |
XbBuilderFixup *fixup);
|
|
Packit |
caecb6 |
void xb_builder_set_profile_flags (XbBuilder *self,
|
|
Packit |
caecb6 |
XbSiloProfileFlags profile_flags);
|
|
Packit |
caecb6 |
|
|
Packit |
caecb6 |
G_END_DECLS
|