ostree-repo-finder 3 OSTREE Library
ostree-repo-finder

## Functions

void | ostree_repo_finder_resolve_async ()
GPtrArray * | ostree_repo_finder_resolve_finish ()
void | ostree_repo_finder_resolve_all_async ()
GPtrArray * | ostree_repo_finder_resolve_all_finish ()
OstreeRepoFinderResult * | ostree_repo_finder_result_new ()
OstreeRepoFinderResult * | ostree_repo_finder_result_dup ()
void | ostree_repo_finder_result_free ()
gint | ostree_repo_finder_result_compare ()
void | ostree_repo_finder_result_freev ()

## Types and Values

| OstreeRepoFinder
typedef | OstreeRepoFinderResultv

## Description

## Functions

### ostree_repo_finder_resolve_async ()

    void
    ostree_repo_finder_resolve_async (OstreeRepoFinder *self,
                                      const OstreeCollectionRef * const *refs,
                                      OstreeRepo *parent_repo,
                                      GCancellable *cancellable,
                                      GAsyncReadyCallback callback,
                                      gpointer user_data);

Find reachable remote URIs which claim to provide any of the given refs . The specific method for finding the remotes depends on the OstreeRepoFinder implementation.

Any remote which is found and which claims to support any of the given refs will be returned in the results. It is possible that a remote claims to support a given ref, but turns out not to — it is not possible to verify this until `ostree_repo_pull_from_remotes_async()` is called.

The returned results will be sorted with the most useful first — this is typically the remote which claims to provide the most refs , at the lowest latency.

Each result contains a mapping of refs to the checksums of the commits which the result provides. If the result provides the latest commit for a ref across all of the results, the checksum will be set. Otherwise, if the result provides an outdated commit, or doesn’t provide a given ref at all, the checksum will not be set. Results which provide none of the requested refs may be listed with an empty refs map.

Pass the results to `ostree_repo_pull_from_remotes_async()` to pull the given refs from those remotes.

#### Parameters

self | an OstreeRepoFinder |
refs | non-empty array of collection–ref pairs to find remotes for. | [array zero-terminated=1]
parent_repo | the local repository which the refs are being resolved for, which provides configuration information and GPG keys. | [transfer none]
cancellable | a GCancellable, or `NULL`. | [nullable]
callback | asynchronous completion callback |
user_data | data to pass to callback |

Since: 2018.6

ostree_repo_finder_resolve_async

### ostree_repo_finder_resolve_finish ()

    GPtrArray *
    ostree_repo_finder_resolve_finish (OstreeRepoFinder *self,
                                       GAsyncResult *result,
                                       GError **error);

Get the results from a `ostree_repo_finder_resolve_async()` operation.

#### Parameters

self | an OstreeRepoFinder |
result | GAsyncResult from the callback |
error | return location for a GError |

#### Returns

array of zero or more results.

[transfer full][element-type OstreeRepoFinderResult]

Since: 2018.6

ostree_repo_finder_resolve_finish

### ostree_repo_finder_resolve_all_async ()

    void
    ostree_repo_finder_resolve_all_async (OstreeRepoFinder * const *finders,
                                          const OstreeCollectionRef * const *refs,
                                          OstreeRepo *parent_repo,
                                          GCancellable *cancellable,
                                          GAsyncReadyCallback callback,
                                          gpointer user_data);

A version of `ostree_repo_finder_resolve_async()` which queries one or more finders in parallel and combines the results.

#### Parameters

finders | non-empty array of OstreeRepoFinders. | [array zero-terminated=1]
refs | non-empty array of collection–ref pairs to find remotes for. | [array zero-terminated=1]
parent_repo | the local repository which the refs are being resolved for, which provides configuration information and GPG keys. | [transfer none]
cancellable | a GCancellable, or `NULL`. | [nullable]
callback | asynchronous completion callback |
user_data | data to pass to callback |

Since: 2018.6

ostree_repo_finder_resolve_all_async

### ostree_repo_finder_resolve_all_finish ()

    GPtrArray *
    ostree_repo_finder_resolve_all_finish (GAsyncResult *result,
                                           GError **error);

Get the results from a `ostree_repo_finder_resolve_all_async()` operation.

#### Parameters

result | GAsyncResult from the callback |
error | return location for a GError |

#### Returns

array of zero or more results.

[transfer full][element-type OstreeRepoFinderResult]

Since: 2018.6

ostree_repo_finder_resolve_all_finish

### ostree_repo_finder_result_new ()

    OstreeRepoFinderResult *
    ostree_repo_finder_result_new (OstreeRemote *remote,
                                   OstreeRepoFinder *finder,
                                   gint priority,
                                   GHashTable *ref_to_checksum,
                                   GHashTable *ref_to_timestamp,
                                   guint64 summary_last_modified);

Create a new OstreeRepoFinderResult instance. The semantics for the arguments are as described in the OstreeRepoFinderResult documentation.

#### Parameters

remote | an OstreeRemote containing the transport details for the result. | [transfer none]
finder | the OstreeRepoFinder instance which produced the result. | [transfer none]
priority | static priority of the result, where higher numbers indicate lower priority |
ref_to_checksum | map of collection–ref pairs to checksums provided by this result. | [element-type OstreeCollectionRef utf8][transfer none]
ref_to_timestamp | (element-type OstreeCollectionRef guint64) (nullable) (transfer none): map of collection–ref pairs to timestamps provided by this result |
summary_last_modified | Unix timestamp (seconds since the epoch, UTC) when the summary file for the result was last modified, or `0` if this is unknown |

#### Returns

a new OstreeRepoFinderResult.

[transfer full]

Since: 2018.6

ostree_repo_finder_result_new

### ostree_repo_finder_result_dup ()

    OstreeRepoFinderResult *
    ostree_repo_finder_result_dup (OstreeRepoFinderResult *result);

Copy an OstreeRepoFinderResult.

#### Parameters

result | an OstreeRepoFinderResult to copy. | [transfer none]

#### Returns

a newly allocated copy of result .

[transfer full]

Since: 2018.6

ostree_repo_finder_result_dup

### ostree_repo_finder_result_free ()

    void
    ostree_repo_finder_result_free (OstreeRepoFinderResult *result);

Free the given result .

#### Parameters

result | an OstreeRepoFinderResult. | [transfer full]

Since: 2018.6

ostree_repo_finder_result_free

### ostree_repo_finder_result_compare ()

    gint
    ostree_repo_finder_result_compare (const OstreeRepoFinderResult *a,
                                       const OstreeRepoFinderResult *b);

Compare two OstreeRepoFinderResult instances to work out which one is better to pull from, and hence needs to be ordered before the other.

#### Parameters

a | an OstreeRepoFinderResult |
b | an OstreeRepoFinderResult |

#### Returns

<0 if a is ordered before b , 0 if they are ordered equally, >0 if b is ordered before a

Since: 2018.6

ostree_repo_finder_result_compare

### ostree_repo_finder_result_freev ()

    void
    ostree_repo_finder_result_freev (OstreeRepoFinderResult **results);

Free the given results array, freeing each element and the container.

#### Parameters

results | an OstreeRepoFinderResult. | [array zero-terminated=1][transfer full]

Since: 2018.6

ostree_repo_finder_result_freev

## Types and Values

### OstreeRepoFinder

    typedef struct _OstreeRepoFinder OstreeRepoFinder;

OstreeRepoFinder

### OstreeRepoFinderResultv

    typedef OstreeRepoFinderResult** OstreeRepoFinderResultv;

A `NULL`-terminated array of OstreeRepoFinderResult instances, designed to be used with `g_auto()`:

    g_auto(OstreeRepoFinderResultv) results = NULL;

Since: 2018.6

OstreeRepoFinderResultv