## XdgAppInstallation XdgAppInstallation |

## Functions

GFileMonitor * | xdg_app_installation_create_monitor ()
GBytes * | xdg_app_installation_fetch_remote_metadata_sync ()
XdgAppRemoteRef * | xdg_app_installation_fetch_remote_ref_sync ()
gboolean | xdg_app_installation_fetch_remote_size_sync ()
XdgAppInstalledRef * | xdg_app_installation_get_current_installed_app ()
XdgAppInstalledRef * | xdg_app_installation_get_installed_ref ()
gboolean | xdg_app_installation_get_is_user ()
GType | xdg_app_installation_get_type ()
XdgAppInstalledRef * | xdg_app_installation_install ()
gboolean | xdg_app_installation_launch ()
GPtrArray * | xdg_app_installation_list_installed_refs ()
GPtrArray * | xdg_app_installation_list_installed_refs_by_kind ()
GPtrArray * | xdg_app_installation_list_installed_refs_for_update ()
GPtrArray * | xdg_app_installation_list_remote_refs_sync ()
GPtrArray * | xdg_app_installation_list_remotes ()
char * | xdg_app_installation_load_app_overrides ()
XdgAppInstallation * | xdg_app_installation_new_for_path ()
XdgAppInstallation * | xdg_app_installation_new_system ()
XdgAppInstallation * | xdg_app_installation_new_user ()
gboolean | xdg_app_installation_uninstall ()
XdgAppInstalledRef * | xdg_app_installation_update ()
gboolean | xdg_app_installation_update_appstream_sync ()
void | (*XdgAppProgressCallback) ()

## Types and Values

struct | XdgAppInstallation
| XdgAppInstallationClass
enum | XdgAppUpdateFlags

## Object Hierarchy

        GObject
        ╰── XdgAppInstallation

## Description

## Functions

### xdg_app_installation_create_monitor ()

    GFileMonitor *
    xdg_app_installation_create_monitor (XdgAppInstallation *self,
                                         GCancellable *cancellable,
                                         GError **error);

Gets the current remote branch of a ref in the remote.

#### Parameters

self | a XdgAppInstallation |
cancellable | a GCancellable. | [nullable]
error | return location for a GError |

#### Returns

a new GFileMonitor instance, or `NULL` on error.

[transfer full]

### xdg_app_installation_fetch_remote_metadata_sync ()

    GBytes *
    xdg_app_installation_fetch_remote_metadata_sync
                                   (XdgAppInstallation *self,
                                    const char *remote_name,
                                    const char *commit,
                                    GCancellable *cancellable,
                                    GError **error);

### xdg_app_installation_fetch_remote_ref_sync ()

    XdgAppRemoteRef *
    xdg_app_installation_fetch_remote_ref_sync
                                   (XdgAppInstallation *self,
                                    const char *remote_name,
                                    XdgAppRefKind kind,
                                    const char *name,
                                    const char *arch,
                                    const char *branch,
                                    GCancellable *cancellable,
                                    GError **error);

Gets the current remote branch of a ref in the remote.

#### Parameters

self | a XdgAppInstallation |
remote_name | the name of the remote |
kind | what this ref contains (an XdgAppRefKind) |
name | name of the app/runtime to fetch |
arch | which architecture to fetch (default: current architecture). | [nullable]
branch | which branch to fetch (default: 'master'). | [nullable]
cancellable | a GCancellable. | [nullable]
error | return location for a GError |

#### Returns

a XdgAppRemoteRef instance, or `NULL`.

[transfer full]

### xdg_app_installation_fetch_remote_size_sync ()

    gboolean
    xdg_app_installation_fetch_remote_size_sync
                                   (XdgAppInstallation *self,
                                    const char *remote_name,
                                    const char *commit,
                                    guint64 *download_size,
                                    guint64 *installed_size,
                                    GCancellable *cancellable,
                                    GError **error);

### xdg_app_installation_get_current_installed_app ()

    XdgAppInstalledRef *
    xdg_app_installation_get_current_installed_app
                                   (XdgAppInstallation *self,
                                    const char *name,
                                    GCancellable *cancellable,
                                    GError **error);

Get the last build of app `name` that was installed with `xdg_app_installation_install()`, or `NULL` if the app has never been installed locally.

#### Parameters

self | a XdgAppInstallation |
name | the name of the app |
cancellable | a GCancellable. | [nullable]
error | return location for a GError |

#### Returns

an XdgAppInstalledRef.

[transfer full]

### xdg_app_installation_get_installed_ref ()

    XdgAppInstalledRef *
    xdg_app_installation_get_installed_ref
                                   (XdgAppInstallation *self,
                                    XdgAppRefKind kind,
                                    const char *name,
                                    const char *arch,
                                    const char *branch,
                                    GCancellable *cancellable,
                                    GError **error);

Returns information about an installed app or runtime, such as the available builds, its size, location, etc.

#### Parameters

self | a XdgAppInstallation |
kind | whether this is an app or runtime |
name | name of the app/runtime to fetch |
arch | which architecture to fetch (default: current architecture). | [nullable]
branch | which branch to fetch (default: 'master'). | [nullable]
cancellable | a GCancellable. | [nullable]
error | return location for a GError |

#### Returns

an XdgAppInstalledRef.

[transfer full]

### xdg_app_installation_get_is_user ()

    gboolean
    xdg_app_installation_get_is_user (XdgAppInstallation *self);

### xdg_app_installation_get_type ()

    GType
    xdg_app_installation_get_type (void);

### xdg_app_installation_install ()

    XdgAppInstalledRef *
    xdg_app_installation_install (XdgAppInstallation *self,
                                  const char *remote_name,
                                  XdgAppRefKind kind,
                                  const char *name,
                                  const char *arch,
                                  const char *branch,
                                  XdgAppProgressCallback progress,
                                  gpointer progress_data,
                                  GCancellable *cancellable,
                                  GError **error);

Install a new ref.

#### Parameters

self | a XdgAppInstallation |
remote_name | name of the remote to use |
kind | what this ref contains (an XdgAppRefKind) |
name | name of the app/runtime to fetch |
arch | which architecture to fetch (default: current architecture). | [nullable]
branch | which branch to fetch (default: 'master'). | [nullable]
progress | progress callback. | [scope call]
progress_data | user data passed to `progress` |
cancellable | a GCancellable. | [nullable]
error | return location for a GError |

#### Returns

The ref for the newly installed app or `NULL` on failure.

[transfer full]

### xdg_app_installation_launch ()

    gboolean
    xdg_app_installation_launch (XdgAppInstallation *self,
                                 const char *name,
                                 const char *arch,
                                 const char *branch,
                                 const char *commit,
                                 GCancellable *cancellable,
                                 GError **error);

Launch an installed application.

You can use `xdg_app_installation_get_installed_ref()` or `xdg_app_installation_get_current_installed_app()` to find out what builds are available, in order to get a value for `commit` .

#### Parameters

self | a XdgAppInstallation |
name | name of the app to launch |
arch | which architecture to launch (default: current architecture). | [nullable]
branch | which branch of the application (default: 'master'). | [nullable]
commit | the commit of `branch` to launch. | [nullable]
cancellable | a GCancellable. | [nullable]
error | return location for a GError |

### xdg_app_installation_list_installed_refs ()

    GPtrArray *
    xdg_app_installation_list_installed_refs
                                   (XdgAppInstallation *self,
                                    GCancellable *cancellable,
                                    GError **error);

Lists the installed references.

#### Parameters

self | a XdgAppInstallation |
cancellable | a GCancellable. | [nullable]
error | return location for a GError |

#### Returns

an GPtrArray of XdgAppInstalledRef instances.

[transfer container][element-type XdgAppInstalledRef]

### xdg_app_installation_list_installed_refs_by_kind ()

    GPtrArray *
    xdg_app_installation_list_installed_refs_by_kind
                                   (XdgAppInstallation *self,
                                    XdgAppRefKind kind,
                                    GCancellable *cancellable,
                                    GError **error);

Lists the installed references of a specific kind.

#### Parameters

self | a XdgAppInstallation |
kind | the kind of installation |
cancellable | a GCancellable. | [nullable]
error | return location for a GError |

#### Returns

an GPtrArray of XdgAppInstalledRef instances.

[transfer container][element-type XdgAppInstalledRef]

### xdg_app_installation_list_installed_refs_for_update ()

    GPtrArray *
    xdg_app_installation_list_installed_refs_for_update
                                   (XdgAppInstallation *self,
                                    GCancellable *cancellable,
                                    GError **error);

Lists the installed references that has a remote update that is not locally available. However, even though an app is not returned by this it can have local updates available that has not been deployed. Look at commit vs latest_commit on installed apps for this.

#### Parameters

self | a XdgAppInstallation |
cancellable | a GCancellable. | [nullable]
error | return location for a GError |

#### Returns

an GPtrArray of XdgAppInstalledRef instances.

[transfer container][element-type XdgAppInstalledRef]

### xdg_app_installation_list_remote_refs_sync ()

    GPtrArray *
    xdg_app_installation_list_remote_refs_sync
                                   (XdgAppInstallation *self,
                                    const char *remote_name,
                                    GCancellable *cancellable,
                                    GError **error);

Lists all the refs in a remote.

#### Parameters

self | a XdgAppInstallation |
remote_name | the name of the remote |
cancellable | a GCancellable. | [nullable]
error | return location for a GError |

#### Returns

an GPtrArray of XdgAppRemoteRef instances.

[transfer container][element-type XdgAppInstalledRef]

### xdg_app_installation_list_remotes ()

    GPtrArray *
    xdg_app_installation_list_remotes (XdgAppInstallation *self,
                                       GCancellable *cancellable,
                                       GError **error);

Lists the remotes, in priority (highest first) order. For same priority, earlier added remote comes before a later added one.

#### Parameters

self | a XdgAppInstallation |
cancellable | a GCancellable. | [nullable]
error | return location for a GError |

#### Returns

an GPtrArray of XdgAppRemote instances.

[transfer container][element-type XdgAppRemote]

### xdg_app_installation_load_app_overrides ()

    char *
    xdg_app_installation_load_app_overrides
                                   (XdgAppInstallation *self,
                                    const char *app_id,
                                    GCancellable *cancellable,
                                    GError **error);

### xdg_app_installation_new_for_path ()

    XdgAppInstallation *
    xdg_app_installation_new_for_path (GFile *path,
                                       gboolean user,
                                       GCancellable *cancellable,
                                       GError **error);

### xdg_app_installation_new_system ()

    XdgAppInstallation *
    xdg_app_installation_new_system (GCancellable *cancellable,
                                     GError **error);

### xdg_app_installation_new_user ()

    XdgAppInstallation *
    xdg_app_installation_new_user (GCancellable *cancellable,
                                   GError **error);

### xdg_app_installation_uninstall ()

    gboolean
    xdg_app_installation_uninstall (XdgAppInstallation *self,
                                    XdgAppRefKind kind,
                                    const char *name,
                                    const char *arch,
                                    const char *branch,
                                    XdgAppProgressCallback progress,
                                    gpointer progress_data,
                                    GCancellable *cancellable,
                                    GError **error);

Update a ref.

#### Parameters

self | a XdgAppInstallation |
kind | what this ref contains (an XdgAppRefKind) |
name | name of the app or runtime to uninstall |
arch | architecture of the app or runtime to uninstall |
branch | name of the branch of the app or runtime to uninstall |
progress | the callback. | [scope call]
progress_data | user data passed to `progress` |
cancellable | a GCancellable. | [nullable]
error | return location for a GError |

#### Returns

`TRUE` on success

### xdg_app_installation_update ()

    XdgAppInstalledRef *
    xdg_app_installation_update (XdgAppInstallation *self,
                                 XdgAppUpdateFlags flags,
                                 XdgAppRefKind kind,
                                 const char *name,
                                 const char *arch,
                                 const char *branch,
                                 XdgAppProgressCallback progress,
                                 gpointer progress_data,
                                 GCancellable *cancellable,
                                 GError **error);

Update a ref.

#### Parameters

self | a XdgAppInstallation |
flags | an XdgAppUpdateFlags variable |
kind | whether this is an app or runtime |
name | name of the app or runtime to update |
arch | architecture of the app or runtime to update (default: current architecture). | [nullable]
branch | name of the branch of the app or runtime to update (default: master). | [nullable]
progress | the callback. | [scope call]
progress_data | user data passed to `progress` |
cancellable | a GCancellable. | [nullable]
error | return location for a GError |

#### Returns

The ref for the newly updated app (or the same if no update) or `NULL` on failure.

[transfer full]

### xdg_app_installation_update_appstream_sync ()

    gboolean
    xdg_app_installation_update_appstream_sync
                                   (XdgAppInstallation *self,
                                    const char *remote_name,
                                    const char *arch,
                                    gboolean *out_changed,
                                    GCancellable *cancellable,
                                    GError **error);

Updates the local copy of appstream for `remote_name` for the specified `arch` .

#### Parameters

self | a XdgAppInstallation |
remote_name | the name of the remote |
arch | Architecture to update, or `NULL` for the local machine arch |
out_changed | Set to `TRUE` if the contents of the appstream changed, `FALSE` if nothing changed. | [nullable]
cancellable | a GCancellable. | [nullable]
error | return location for a GError |

#### Returns

`TRUE` on success, or `FALSE` on error

### XdgAppProgressCallback ()

    void
    (*XdgAppProgressCallback) (const char *status,
                               guint progress,
                               gboolean estimating,
                               gpointer user_data);

## Types and Values

### struct XdgAppInstallation

    struct XdgAppInstallation;

### XdgAppInstallationClass

    typedef struct {
      GObjectClass parent_class;
    } XdgAppInstallationClass;

### enum XdgAppUpdateFlags

Flags to alter the behavior of `xdg_app_installation_update()`.

#### Members

XDG_APP_UPDATE_FLAGS_NONE | Fetch remote builds and install the latest one (default) |
XDG_APP_UPDATE_FLAGS_NO_DEPLOY | Don't install any new builds that might be fetched |
XDG_APP_UPDATE_FLAGS_NO_PULL | Don't try to fetch new builds from the remote repo |