## TrackerStorage

TrackerStorage — Removable storage and mount point convenience API

## Synopsis

    #include <libtracker-miner/tracker-miner.h>

                        TrackerStorage;
                        TrackerStorageClass;
    enum                TrackerStorageType;
    TrackerStorage *    tracker_storage_new                 (void);
    GSList *            tracker_storage_get_device_roots    (TrackerStorage *storage,
                                                             TrackerStorageType type,
                                                             gboolean exact_match);
    GSList *            tracker_storage_get_device_uuids    (TrackerStorage *storage,
                                                             TrackerStorageType type,
                                                             gboolean exact_match);
    const gchar *       tracker_storage_get_mount_point_for_uuid
                                                            (TrackerStorage *storage,
                                                             const gchar *uuid);
    const gchar*        tracker_storage_get_uuid_for_file   (TrackerStorage *storage,
                                                             GFile *file);

## Description

This API is a convenience to to be able to keep track of volumes which are mounted and also the type of removable media available. The API is built upon the top of GIO's GMount, GDrive and GVolume API.

## Details

### TrackerStorage

    typedef struct {
    	GObject parent;
    } TrackerStorage;

### TrackerStorageClass

    typedef struct {
    	GObjectClass parent_class;
    } TrackerStorageClass;

### enum TrackerStorageType

    typedef enum {
    	TRACKER_STORAGE_REMOVABLE = 1 << 0,
    	TRACKER_STORAGE_OPTICAL   = 1 << 1
    } TrackerStorageType;

### tracker_storage_new ()

    TrackerStorage *    tracker_storage_new                 (void);

Creates a new instance of TrackerStorage.

Returns : | The newly created TrackerStorage.

### tracker_storage_get_device_roots ()

    GSList *            tracker_storage_get_device_roots    (TrackerStorage *storage,
                                                             TrackerStorageType type,
                                                             gboolean exact_match);

`storage` : | A TrackerStorage
`type` : | A TrackerStorageType
`exact_match` : | if all devices should exactly match the types
Returns : | a GSList of strings containing the root directories for devices with `type` based on `exact_match`. Each element must be freed using `g_free()` and the list itself through `g_slist_free()`.

### tracker_storage_get_device_uuids ()

    GSList *            tracker_storage_get_device_uuids    (TrackerStorage *storage,
                                                             TrackerStorageType type,
                                                             gboolean exact_match);

`storage` : | A TrackerStorage
`type` : | A TrackerStorageType
`exact_match` : | if all devices should exactly match the types
Returns : | a GSList of strings containing the UUID for devices with `type` based on `exact_match`. Each element must be freed using `g_free()` and the list itself through `g_slist_free()`.

### tracker_storage_get_mount_point_for_uuid ()

    const gchar *       tracker_storage_get_mount_point_for_uuid
                                                            (TrackerStorage *storage,
                                                             const gchar *uuid);

`storage` : | A TrackerStorage
`uuid` : | A string pointer to the UUID for the `GVolume`.
Returns : | The mount point for `uuid`, this should not be freed.

### tracker_storage_get_uuid_for_file ()

    const gchar*        tracker_storage_get_uuid_for_file   (TrackerStorage *storage,
                                                             GFile *file);

Returns the UUID of the removable device for `file`

`storage` : | A TrackerStorage
`file` : | a file
Returns : | Returns the UUID of the removable device for `file`, this should not be freed.