## AgService AgService — A representation of a service. |

## Synopsis

    #include <libaccounts-glib/ag-service.h>

                        AgService;
    const gchar *       ag_service_get_display_name         (AgService *service);
    const gchar *       ag_service_get_description          (AgService *service);
    void                ag_service_get_file_contents        (AgService *service,
                                                             const gchar **contents,
                                                             gsize *data_offset);
    const gchar *       ag_service_get_i18n_domain          (AgService *service);
    const gchar *       ag_service_get_icon_name            (AgService *service);
    const gchar *       ag_service_get_name                 (AgService *service);
    const gchar *       ag_service_get_provider             (AgService *service);
    const gchar *       ag_service_get_service_type         (AgService *service);
    GList *             ag_service_get_tags                 (AgService *service);
    gboolean            ag_service_has_tag                  (AgService *service,
                                                             const gchar *tag);
    void                ag_service_list_free                (GList *list);
    AgService *         ag_service_ref                      (AgService *service);
    void                ag_service_unref                    (AgService *service);

## Object Hierarchy

      GBoxed
       +----AgService

## Description

The AgService structure represents a service. The structure is not directly exposed to applications, but its fields are accessible via getter methods. It is instantiated by AgManager, with `ag_manager_get_service()`, `ag_manager_list_services()` or `ag_manager_list_services_by_type()`. The structure is reference counted. One must use `ag_service_unref()` when done with it.

## Details

### AgService

    typedef struct _AgService AgService;

Opaque structure. Use related accessor functions.

### ag_service_get_display_name ()

    const gchar *       ag_service_get_display_name         (AgService *service);

Gets the display name of the AgService.

`service` : | the AgService.
Returns : | the display name of `service`.

### ag_service_get_description ()

    const gchar *       ag_service_get_description          (AgService *service);

Gets the description of the AgService.

`service` : | the AgService.
Returns : | the description of `service`, or `NULL` upon failure.

Since 1.2

### ag_service_get_file_contents ()

    void                ag_service_get_file_contents        (AgService *service,
                                                             const gchar **contents,
                                                             gsize *data_offset);

Gets the contents of the XML service file. The buffer returned in `contents` should not be modified or freed, and is guaranteed to be valid as long as `service` is referenced. If `data_offset` is not `NULL`, it is set to the offset where the <type_data> element can be found. If some error occurs, `contents` is set to `NULL`.

`service` : | the AgService.
`contents` : | location to receive the pointer to the file contents.
`data_offset` : | pointer to receive the offset of the type data.

### ag_service_get_i18n_domain ()

    const gchar *       ag_service_get_i18n_domain          (AgService *service);

Gets the translation domain of the AgService.

`service` : | the AgService.
Returns : | the name of the translation catalog.

### ag_service_get_icon_name ()

    const gchar *       ag_service_get_icon_name            (AgService *service);

Gets the icon name of the AgService.

`service` : | the AgService.
Returns : | the name of the icon of `service`.

### ag_service_get_name ()

    const gchar *       ag_service_get_name                 (AgService *service);

Gets the name of the AgService.

`service` : | the AgService.
Returns : | the name of `service`.

### ag_service_get_provider ()

    const gchar *       ag_service_get_provider             (AgService *service);

Gets the provider name of the AgService.

`service` : | the AgService.
Returns : | the name of the provider of `service`.

### ag_service_get_service_type ()

    const gchar *       ag_service_get_service_type         (AgService *service);

Gets the service type of the AgService.

`service` : | the AgService.
Returns : | the type of `service`.

### ag_service_get_tags ()

    GList *             ag_service_get_tags                 (AgService *service);

Get list of tags specified for the AgService. If the service has not defined tags, tags from the service type will be returned.

`service` : | the AgService.
Returns : | GList of tags for `service`. The list must be freed with `g_list_free()`. Entries are owned by the AgService type and must not be free'd. [transfer container][element-type utf8]

### ag_service_has_tag ()

    gboolean            ag_service_has_tag                  (AgService *service,
                                                             const gchar *tag);

Checks if the AgService has the requested tag.

`service` : | the AgService.
`tag` : | tag to check for.
Returns : | TRUE if AgService has the tag, FALSE otherwise

### ag_service_list_free ()

    void                ag_service_list_free                (GList *list);

Frees the list `list`.

`list` : | a GList of services returned by some function of this library. [element-type AgService]

### ag_service_ref ()

    AgService *         ag_service_ref                      (AgService *service);

Adds a reference to `service`.

`service` : | the AgService.
Returns : | `service`.

### ag_service_unref ()

    void                ag_service_unref                    (AgService *service);

Used to unreference the AgService structure.

`service` : | the AgService.