## ZifStoreRemote ZifStoreRemote — Store for remote packages |

## Synopsis

    struct              ZifStoreRemote;
    struct              ZifStoreRemoteClass;
    gboolean            zif_store_remote_download           (ZifStoreRemote *store,
                                                             const gchar *filename,
                                                             const gchar *directory,
                                                             ZifState *state,
                                                             GError **error);
    gboolean            zif_store_remote_download_full      (ZifStoreRemote *store,
                                                             const gchar *filename,
                                                             const gchar *directory,
                                                             guint64 size,
                                                             const gchar *content_types,
                                                             GChecksumType checksum_type,
                                                             const gchar *checksum,
                                                             ZifState *state,
                                                             GError **error);
    ZifDelta *          zif_store_remote_find_delta         (ZifStoreRemote *store,
                                                             ZifPackage *update,
                                                             ZifPackage *installed,
                                                             ZifState *state,
                                                             GError **error);
    gboolean            zif_store_remote_get_boolean        (ZifStoreRemote *store,
                                                             const gchar *key,
                                                             GError **error);
    gboolean            zif_store_remote_get_enabled        (ZifStoreRemote *store,
                                                             ZifState *state,
                                                             GError **error);
    const gchar *       zif_store_remote_get_name           (ZifStoreRemote *store,
                                                             ZifState *state,
                                                             GError **error);
    gchar **            zif_store_remote_get_pubkey         (ZifStoreRemote *store);
    gboolean            zif_store_remote_get_pubkey_enabled (ZifStoreRemote *store);
    gchar *             zif_store_remote_get_string         (ZifStoreRemote *store,
                                                             const gchar *key,
                                                             GError **error);
    ZifUpdate *         zif_store_remote_get_update_detail  (ZifStoreRemote *store,
                                                             const gchar *package_id,
                                                             ZifState *state,
                                                             GError **error);
    gboolean            zif_store_remote_is_devel           (ZifStoreRemote *store,
                                                             ZifState *state,
                                                             GError **error);
    ZifStore *          zif_store_remote_new                (void);
    gboolean            zif_store_remote_set_enabled        (ZifStoreRemote *store,
                                                             gboolean enabled,
                                                             ZifState *state,
                                                             GError **error);
    gboolean            zif_store_remote_set_from_file      (ZifStoreRemote *store,
                                                             const gchar *filename,
                                                             const gchar *id,
                                                             ZifState *state,
                                                             GError **error);
    void                zif_store_remote_set_id             (ZifStoreRemote *store,
                                                             const gchar *id);

## Object Hierarchy

      GObject
       +----ZifStore
             +----ZifStoreRemote

## Description

A ZifStoreRemote is a subclassed ZifStore and operates on remote objects. A repository is another name for a ZifStoreRemote.

## Details

### struct ZifStoreRemote

    struct ZifStoreRemote;

### struct ZifStoreRemoteClass

    struct ZifStoreRemoteClass {
    	ZifStoreClass		 parent_class;
    	/* Padding for future expansion */
    	void (*_zif_reserved1) (void);
    	void (*_zif_reserved2) (void);
    	void (*_zif_reserved3) (void);
    	void (*_zif_reserved4) (void);
    };

### zif_store_remote_download ()

    gboolean            zif_store_remote_download           (ZifStoreRemote *store,
                                                             const gchar *filename,
                                                             const gchar *directory,
                                                             ZifState *state,
                                                             GError **error);

Downloads a remote package to a local directory. NOTE: if `filename` is "Packages/hal-0.1.0.rpm" and `directory` is "/var/cache/zif" then the downloaded file will "/var/cache/zif/hal-0.1.0.rpm"

`store` : | A ZifStoreRemote
`filename` : | Filename to download, e.g. "Packages/hal-0.1.0.rpm"
`directory` : | Directory to put the downloaded file, e.g. "/var/cache/zif"
`state` : | A ZifState to use for progress reporting
`error` : | A GError, or `NULL`
Returns : | `TRUE` for success, `FALSE` otherwise

Since 0.1.0

### zif_store_remote_download_full ()

    gboolean            zif_store_remote_download_full      (ZifStoreRemote *store,
                                                             const gchar *filename,
                                                             const gchar *directory,
                                                             guint64 size,
                                                             const gchar *content_types,
                                                             GChecksumType checksum_type,
                                                             const gchar *checksum,
                                                             ZifState *state,
                                                             GError **error);

Downloads a remote package to a local directory. NOTE: if `filename` is "Packages/hal-0.1.0.rpm" and `directory` is "/var/cache/zif" then the downloaded file will "/var/cache/zif/hal-0.1.0.rpm"

`store` : | A ZifStoreRemote
`filename` : | Filename to download, e.g. "Packages/hal-0.1.0.rpm"
`directory` : | Directory to put the downloaded file, e.g. "/var/cache/zif"
`size` : | Expected size in bytes, or 0
`content_types` : | Comma delimited expected content types of the file, or `NULL`
`checksum_type` : | Checksum type, e.g. `G_CHECKSUM_SHA256`, or 0
`checksum` : | Expected checksum of the file, or `NULL`
`state` : | A ZifState to use for progress reporting
`error` : | A GError, or `NULL`
Returns : | `TRUE` for success, `FALSE` otherwise

Since 0.1.5

### zif_store_remote_find_delta ()

    ZifDelta *          zif_store_remote_find_delta         (ZifStoreRemote *store,
                                                             ZifPackage *update,
                                                             ZifPackage *installed,
                                                             ZifState *state,
                                                             GError **error);

Find a update delta between to packages. This might allow Zif to download much less data, at the expense of the amount of CPU taken during the update when the delta package is rebuilt.

`store` : | A ZifStoreRemote
`update` : | New package to update to
`installed` : | Package that is currently installed
`state` : | A ZifState to use for progress reporting
`error` : | A GError, or `NULL`
Returns : | A delta object or `NULL`. [transfer full]

Since 0.1.3

### zif_store_remote_get_boolean ()

    gboolean            zif_store_remote_get_boolean        (ZifStoreRemote *store,
                                                             const gchar *key,
                                                             GError **error);

Gets a boolean value from the repo, falling back to the config file if not found.

`store` : | A ZifStoreRemote
`key` : | A key name to retrieve, e.g. "keepcache"
`error` : | A GError, or `NULL`
Returns : | `TRUE` or `FALSE`

Since 0.2.6

### zif_store_remote_get_enabled ()

    gboolean            zif_store_remote_get_enabled        (ZifStoreRemote *store,
                                                             ZifState *state,
                                                             GError **error);

Find out if this repository is enabled in the repo file.

NOTE: the repo can still be runtime disabled by using zif_store_set_enabled(store, FALSE)

`store` : | A ZifStoreRemote
`state` : | A ZifState to use for progress reporting
`error` : | A GError, or `NULL`
Returns : | `TRUE` or `FALSE`

Since 0.1.0

### zif_store_remote_get_name ()

    const gchar *       zif_store_remote_get_name           (ZifStoreRemote *store,
                                                             ZifState *state,
                                                             GError **error);

Get the name of this repository.

`store` : | A ZifStoreRemote
`state` : | A ZifState to use for progress reporting
`error` : | A GError, or `NULL`
Returns : | The repository name, e.g. "Fedora"

Since 0.1.0

### zif_store_remote_get_pubkey ()

    gchar **            zif_store_remote_get_pubkey         (ZifStoreRemote *store);

Get the public key URLs for this repository.

`store` : | A ZifStoreRemote
Returns : | An array of key URLs, or `NULL`. [transfer none]

Since 0.3.2

### zif_store_remote_get_pubkey_enabled ()

    gboolean            zif_store_remote_get_pubkey_enabled (ZifStoreRemote *store);

Get the public key URLs for this repository is enabled.

`store` : | A ZifStoreRemote
Returns : | `TRUE` is gpgcheck is enabled.

Since 0.3.6

### zif_store_remote_get_string ()

    gchar *             zif_store_remote_get_string         (ZifStoreRemote *store,
                                                             const gchar *key,
                                                             GError **error);

Gets a string value from the repo, falling back to the config file if not found.

`store` : | A ZifStoreRemote
`key` : | A key name to retrieve, e.g. "keepcache"
`error` : | A GError, or `NULL`
Returns : | An allocated value, or `NULL`

Since 0.2.6

### zif_store_remote_get_update_detail ()

    ZifUpdate *         zif_store_remote_get_update_detail  (ZifStoreRemote *store,
                                                             const gchar *package_id,
                                                             ZifState *state,
                                                             GError **error);

Gets the update detail for a package.

`store` : | A ZifStoreRemote
`package_id` : | The package_id of the package to find
`state` : | A ZifState to use for progress reporting
`error` : | A GError, or `NULL`
Returns : | A `ZifUpdate`, or `NULL` for failure. [transfer full]

Since 0.1.0

### zif_store_remote_is_devel ()

    gboolean            zif_store_remote_is_devel           (ZifStoreRemote *store,
                                                             ZifState *state,
                                                             GError **error);

Finds out if the repository is a development repository.

`store` : | A ZifStoreRemote
`state` : | A ZifState to use for progress reporting
`error` : | A GError, or `NULL`
Returns : | `TRUE` or `FALSE`

Since 0.1.0

### zif_store_remote_new ()

    ZifStore *          zif_store_remote_new                (void);

Returns : | A new ZifStoreRemote instance.

Since 0.1.0

### zif_store_remote_set_enabled ()

    gboolean            zif_store_remote_set_enabled        (ZifStoreRemote *store,
                                                             gboolean enabled,
                                                             ZifState *state,
                                                             GError **error);

Enable or disable a remote repository.

`store` : | A ZifStoreRemote
`enabled` : | If the object should be enabled
`error` : | A GError, or `NULL`
Returns : | `TRUE` for success, `FALSE` otherwise

Since 0.1.6

### zif_store_remote_set_from_file ()

    gboolean            zif_store_remote_set_from_file      (ZifStoreRemote *store,
                                                             const gchar *filename,
                                                             const gchar *id,
                                                             ZifState *state,
                                                             GError **error);

`state` : | A ZifState to use for progress reporting

Since 0.1.0

### zif_store_remote_set_id ()

    void                zif_store_remote_set_id             (ZifStoreRemote *store,
                                                             const gchar *id);

Sets the ID for the ZifStoreRemote

`store` : | A ZifStoreRemote
`id` : | The repository id, e.g. "fedora"

Since 0.1.3