## GeoclueMasterClient GeoclueMasterClient — Geoclue MasterClient API |

## Functions

gboolean | geoclue_master_client_set_requirements ()
void | (*GeoclueSetRequirementsCallback) ()
void | geoclue_master_client_set_requirements_async ()
GeoclueAddress * | geoclue_master_client_create_address ()
void | (*CreateAddressCallback) ()
void | geoclue_master_client_create_address_async ()
GeocluePosition * | geoclue_master_client_create_position ()
void | (*CreatePositionCallback) ()
void | geoclue_master_client_create_position_async ()
gboolean | geoclue_master_client_get_address_provider ()
void | (*GeoclueGetProviderCallback) ()
void | geoclue_master_client_get_address_provider_async ()
gboolean | geoclue_master_client_get_position_provider ()
void | geoclue_master_client_get_position_provider_async ()

## Properties

gchar * | object-path | Write / Construct Only

## Signals

void | address-provider-changed | No Recursion
void | invalidated | No Recursion
void | position-provider-changed | No Recursion

## Types and Values

#define | GEOCLUE_MASTER_CLIENT_DBUS_INTERFACE

## Object Hierarchy

        GObject
        ╰── GeoclueMasterClient

## Description

GeoclueMasterClient is part of the Geoclue public C client API. It uses D-Bus to communicate with the actual Master service.

GeoclueMasterClient is used to control the client specific behaviour of Geoclue Master. Chapter "Master provider: simple example in C" contains a more complete example, but here are the main parts:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    GeoclueMaster *master;
    GeoclueMasterClient *client;
    GeoclueAddress *address;

    ...

    master = geoclue_master_get_default ();
    client = geoclue_master_create_client (master, NULL, NULL);

    if (!geoclue_master_client_set_requirements (client,
                                                 GEOCLUE_ACCURACY_LEVEL_NONE,
                                                 0, FALSE,
                                                 GEOCLUE_RESOURCE_NETWORK,
                                                 &error)) {
        / * handle error * /
    }

    address = geoclue_master_client_create_address (client, error);
    if (!address) {
        / * handle error * /
    }

    / * Now we can use address just like we'd use a normal address provider,
        but GeoclueMasterClient makes sure that underneath the provider
        that best matches our requirements is used * /

## Functions

### geoclue_master_client_set_requirements ()

    gboolean
    geoclue_master_client_set_requirements
                                   (GeoclueMasterClient *client,
                                    GeoclueAccuracyLevel min_accuracy,
                                    int min_time,
                                    gboolean require_updates,
                                    GeoclueResourceFlags allowed_resources,
                                    GError **error);

Sets the criteria that should be used when selecting the used provider

#### Parameters

client | A GeoclueMasterClient |
min_accuracy | The required minimum accuracy as a GeoclueAccuracyLevel. |
min_time | The minimum time between update signals in seconds |
require_updates | Whether the updates (signals) are required. Only applies to interfaces with signals |
allowed_resources | The resources that are allowed to be used as a GeoclueResourceFlags |
error | A pointer to returned GError or `NULL`. |

#### Returns

`TRUE` on success

### GeoclueSetRequirementsCallback ()

    void
    (*GeoclueSetRequirementsCallback) (GeoclueMasterClient *client,
                                       GError *error,
                                       gpointer userdata);

Callback function for `geoclue_master_client_set_requirements_async()`.

#### Parameters

client | A GeoclueMasterClient object |
error | Error as Gerror (may be `NULL`) |
userdata | User data pointer set in `geoclue_master_client_set_requirements_async()` |

### geoclue_master_client_set_requirements_async ()

    void
    geoclue_master_client_set_requirements_async
                                   (GeoclueMasterClient *client,
                                    GeoclueAccuracyLevel min_accuracy,
                                    int min_time,
                                    gboolean require_updates,
                                    GeoclueResourceFlags allowed_resources,
                                    GeoclueSetRequirementsCallback callback,
                                    gpointer userdata);

Asynchronous version of `geoclue_master_client_set_requirements()`.

#### Parameters

client | A GeoclueMasterClient |
min_accuracy | The required minimum accuracy as a GeoclueAccuracyLevel. |
min_time | The minimum time between update signals (currently not implemented) |
require_updates | Whether the updates (signals) are required. Only applies to interfaces with signals |
allowed_resources | The resources that are allowed to be used as a GeoclueResourceFlags |
callback | GeoclueSetRequirementsCallback function to call when requirements have been set |
userdata | User data pointer |

### geoclue_master_client_create_address ()

    GeoclueAddress *
    geoclue_master_client_create_address (GeoclueMasterClient *client,
                                          GError **error);

Starts the GeoclueMasterClient address provider and returns a GeoclueAddress that uses the same D-Bus object as the GeoclueMasterClient.

#### Parameters

client | A GeoclueMasterClient |
error | A pointer to returned GError or `NULL`. |

#### Returns

New GeoclueAddress or `NULL` on error

### CreateAddressCallback ()

    void
    (*CreateAddressCallback) (GeoclueMasterClient *client,
                              GeoclueAddress *address,
                              GError *error,
                              gpointer userdata);

Callback function for `geoclue_master_client_create_address_async()`.

#### Parameters

client | A GeoclueMasterClient object |
address | returned GeoclueAddress |
error | Error as Gerror (may be `NULL`) |
userdata | User data pointer set in `geoclue_master_client_create_address_async()` |

### geoclue_master_client_create_address_async ()

    void
    geoclue_master_client_create_address_async
                                   (GeoclueMasterClient *client,
                                    CreateAddressCallback callback,
                                    gpointer userdata);

Function returns (essentially) immediately and calls `callback` when it has started the address provider and a GeoclueAddress is available.

#### Parameters

client | A GeoclueMasterClient object |
callback | A CreateAddressCallback function that should be called when return values are available |
userdata | pointer for user specified data |

### geoclue_master_client_create_position ()

    GeocluePosition *
    geoclue_master_client_create_position (GeoclueMasterClient *client,
                                           GError **error);

Starts the GeoclueMasterClient position provider and returns a GeocluePosition that uses the same D-Bus object as the GeoclueMasterClient.

#### Parameters

client | A GeoclueMasterClient |
error | A pointer to returned GError or `NULL`. |

#### Returns

New GeocluePosition or `NULL` on error

### CreatePositionCallback ()

    void
    (*CreatePositionCallback) (GeoclueMasterClient *client,
                               GeocluePosition *position,
                               GError *error,
                               gpointer userdata);

Callback function for `geoclue_master_client_create_position_async()`.

#### Parameters

client | A GeoclueMasterClient object |
position | returned GeocluePosition |
error | Error as Gerror (may be `NULL`) |
userdata | User data pointer set in `geoclue_master_client_create_position_async()` |

### geoclue_master_client_create_position_async ()

    void
    geoclue_master_client_create_position_async
                                   (GeoclueMasterClient *client,
                                    CreatePositionCallback callback,
                                    gpointer userdata);

Function returns (essentially) immediately and calls `callback` when it has started the position provider and a GeocluePosition is available.

#### Parameters

client | A GeoclueMasterClient object |
callback | A CreatePositionCallback function that should be called when return values are available |
userdata | pointer for user specified data |

### geoclue_master_client_get_address_provider ()

    gboolean
    geoclue_master_client_get_address_provider
                                   (GeoclueMasterClient *client,
                                    char **name,
                                    char **description,
                                    char **service,
                                    char **path,
                                    GError **error);

Gets name and other information for the currently used address provider.

#### Parameters

client | A GeoclueMasterClient |
name | Pointer to returned provider name or `NULL` |
description | Pointer to returned provider description or `NULL` |
service | Pointer to returned D-Bus service name or `NULL` |
path | Pointer to returned D-Bus object path or `NULL` |
error | Pointer to returned GError or `NULL` |

#### Returns

`TRUE` on success

### GeoclueGetProviderCallback ()

    void
    (*GeoclueGetProviderCallback) (GeoclueMasterClient *client,
                                   char *name,
                                   char *description,
                                   char *service,
                                   char *path,
                                   GError *error,
                                   gpointer userdata);

### geoclue_master_client_get_address_provider_async ()

    void
    geoclue_master_client_get_address_provider_async
                                   (GeoclueMasterClient *client,
                                    GeoclueGetProviderCallback callback,
                                    gpointer userdata);

Gets name and other information for the currently used address provider asynchronously.

#### Parameters

client | A GeoclueMasterClient |
callback | A GeoclueGetProviderCallback function that will be called when return values are available |
userdata | pointer for user specified data |

### geoclue_master_client_get_position_provider ()

    gboolean
    geoclue_master_client_get_position_provider
                                   (GeoclueMasterClient *client,
                                    char **name,
                                    char **description,
                                    char **service,
                                    char **path,
                                    GError **error);

Gets name and other information for the currently used position provider.

#### Parameters

client | A GeoclueMasterClient |
name | Pointer to returned provider name or `NULL` |
description | Pointer to returned provider description or `NULL` |
service | Pointer to returned D-Bus service name or `NULL` |
path | Pointer to returned D-Bus object path or `NULL` |
error | Pointer to returned GError or `NULL` |

#### Returns

`TRUE` on success

### geoclue_master_client_get_position_provider_async ()

    void
    geoclue_master_client_get_position_provider_async
                                   (GeoclueMasterClient *client,
                                    GeoclueGetProviderCallback callback,
                                    gpointer userdata);

Gets name and other information for the currently used position provider asynchronously.

#### Parameters

client | A GeoclueMasterClient |
callback | A GeoclueGetProviderCallback function that will be called when return values are available |
userdata | pointer for user specified data |

## Types and Values

### GEOCLUE_MASTER_CLIENT_DBUS_INTERFACE

    #define GEOCLUE_MASTER_CLIENT_DBUS_INTERFACE "org.freedesktop.Geoclue.MasterClient"

## Property Details

### The `“object-path”` property

      “object-path”              gchar *

The DBus path to the object.

Flags: Write / Construct Only

Default value: ""

## Signal Details

### The `“address-provider-changed”` signal

    void
    user_function (GeoclueMasterClient *client,
                   gchar               *name,
                   gchar               *description,
                   gchar               *service,
                   gchar               *path,
                   gpointer             user_data)

Flags: No Recursion

### The `“invalidated”` signal

    void
    user_function (GeoclueMasterClient *client,
                   gpointer             user_data)

Flags: No Recursion

### The `“position-provider-changed”` signal

    void
    user_function (GeoclueMasterClient *client,
                   gchar               *name,
                   gchar               *description,
                   gchar               *service,
                   gchar               *path,
                   gpointer             user_data)

Flags: No Recursion