OsinfoDb

## OsinfoDb OsinfoDb — Database of all entities |

## Synopsis

    struct              OsinfoDb;
    struct              OsinfoDbClass;
    OsinfoDb *          osinfo_db_new                       (void);
    OsinfoPlatform *    osinfo_db_get_platform              (OsinfoDb *db,
                                                             const gchar *id);
    OsinfoDevice *      osinfo_db_get_device                (OsinfoDb *db,
                                                             const gchar *id);
    OsinfoOs *          osinfo_db_get_os                    (OsinfoDb *db,
                                                             const gchar *id);
    OsinfoDeployment *  osinfo_db_get_deployment            (OsinfoDb *db,
                                                             const gchar *id);
    OsinfoDatamap *     osinfo_db_get_datamap               (OsinfoDb *db,
                                                             const gchar *id);
    OsinfoInstallScript * osinfo_db_get_install_script      (OsinfoDb *db,
                                                             const gchar *id);
    OsinfoDeployment *  osinfo_db_find_deployment           (OsinfoDb *db,
                                                             OsinfoOs *os,
                                                             OsinfoPlatform *platform);
    OsinfoOsList *      osinfo_db_get_os_list               (OsinfoDb *db);
    OsinfoPlatformList * osinfo_db_get_platform_list        (OsinfoDb *db);
    OsinfoDeviceList *  osinfo_db_get_device_list           (OsinfoDb *db);
    OsinfoDeploymentList * osinfo_db_get_deployment_list    (OsinfoDb *db);
    OsinfoInstallScriptList * osinfo_db_get_install_script_list
                                                            (OsinfoDb *db);
    OsinfoDatamapList * osinfo_db_get_datamap_list          (OsinfoDb *db);
    void                osinfo_db_add_os                    (OsinfoDb *db,
                                                             OsinfoOs *os);
    void                osinfo_db_add_platform              (OsinfoDb *db,
                                                             OsinfoPlatform *platform);
    void                osinfo_db_add_device                (OsinfoDb *db,
                                                             OsinfoDevice *device);
    void                osinfo_db_add_deployment            (OsinfoDb *db,
                                                             OsinfoDeployment *deployment);
    void                osinfo_db_add_datamap               (OsinfoDb *db,
                                                             OsinfoDatamap *datamap);
    void                osinfo_db_add_install_script        (OsinfoDb *db,
                                                             OsinfoInstallScript *script);
    OsinfoOs *          osinfo_db_guess_os_from_media       (OsinfoDb *db,
                                                             OsinfoMedia *media,
                                                             OsinfoMedia **matched_media);
    gboolean            osinfo_db_identify_media            (OsinfoDb *db,
                                                             OsinfoMedia *media);
    OsinfoOs *          osinfo_db_guess_os_from_tree        (OsinfoDb *db,
                                                             OsinfoTree *tree,
                                                             OsinfoTree **matched_tree);
    GList *             osinfo_db_unique_values_for_property_in_os
                                                            (OsinfoDb *db,
                                                             const gchar *propName);
    GList *             osinfo_db_unique_values_for_property_in_platform
                                                            (OsinfoDb *db,
                                                             const gchar *propName);
    GList *             osinfo_db_unique_values_for_property_in_device
                                                            (OsinfoDb *db,
                                                             const gchar *propName);
    GList *             osinfo_db_unique_values_for_property_in_deployment
                                                            (OsinfoDb *db,
                                                             const gchar *propName);
    OsinfoOsList *      osinfo_db_unique_values_for_os_relationship
                                                            (OsinfoDb *db,
                                                             OsinfoProductRelationship relshp);
    OsinfoPlatformList * osinfo_db_unique_values_for_platform_relationship
                                                            (OsinfoDb *db,
                                                             OsinfoProductRelationship relshp);

## Object Hierarchy

      GObject
       +----OsinfoDb

## Description

OsinfoDb is a database tracking all entity instances against which metadata is recorded.

## Details

### struct OsinfoDb

    struct OsinfoDb;

### struct OsinfoDbClass

    struct OsinfoDbClass {
    };

### osinfo_db_new ()

    OsinfoDb *          osinfo_db_new                       (void);

Returns : | the new database. [transfer full]

### osinfo_db_get_platform ()

    OsinfoPlatform *    osinfo_db_get_platform              (OsinfoDb *db,
                                                             const gchar *id);

`db` : | the database
`id` : | the unique platform identifier
Returns : | the platform, or NULL if none is found. [transfer none]

### osinfo_db_get_device ()

    OsinfoDevice *      osinfo_db_get_device                (OsinfoDb *db,
                                                             const gchar *id);

`db` : | the database
`id` : | the unique device identifier
Returns : | the device, or NULL if none is found. [transfer none]

### osinfo_db_get_os ()

    OsinfoOs *          osinfo_db_get_os                    (OsinfoDb *db,
                                                             const gchar *id);

`db` : | the database
`id` : | the unique operating system identifier
Returns : | the operating system, or NULL if none is found. [transfer none]

### osinfo_db_get_deployment ()

    OsinfoDeployment *  osinfo_db_get_deployment            (OsinfoDb *db,
                                                             const gchar *id);

`db` : | the database
`id` : | the unique operating system identifier
Returns : | the operating system, or NULL if none is found. [transfer none]

### osinfo_db_get_datamap ()

    OsinfoDatamap *     osinfo_db_get_datamap               (OsinfoDb *db,
                                                             const gchar *id);

`db` : | the database
`id` : | the unique operating system identifier
Returns : | the install datamap, or NULL if none is found. [transfer none]

### osinfo_db_get_install_script ()

    OsinfoInstallScript * osinfo_db_get_install_script      (OsinfoDb *db,
                                                             const gchar *id);

`db` : | the database
`id` : | the unique operating system identifier
Returns : | the install script, or NULL if none is found. [transfer none]

### osinfo_db_find_deployment ()

    OsinfoDeployment *  osinfo_db_find_deployment           (OsinfoDb *db,
                                                             OsinfoOs *os,
                                                             OsinfoPlatform *platform);

Find the deployment for `os` on `platform`, if any.

`db` : | the database
`os` : | the operating system to find
`platform` : | the virtualization platform
Returns : | the deployment, or NULL. [transfer none]

### osinfo_db_get_os_list ()

    OsinfoOsList *      osinfo_db_get_os_list               (OsinfoDb *db);

`db` : | the database
Returns : | the list of operating systems. [transfer full]

### osinfo_db_get_platform_list ()

    OsinfoPlatformList * osinfo_db_get_platform_list        (OsinfoDb *db);

`db` : | the database
Returns : | the list of platforms. [transfer full]

### osinfo_db_get_device_list ()

    OsinfoDeviceList *  osinfo_db_get_device_list           (OsinfoDb *db);

`db` : | the database
Returns : | the list of devices. [transfer full]

### osinfo_db_get_deployment_list ()

    OsinfoDeploymentList * osinfo_db_get_deployment_list    (OsinfoDb *db);

`db` : | the database
Returns : | the list of deployments. [transfer full]

### osinfo_db_get_install_script_list ()

    OsinfoInstallScriptList * osinfo_db_get_install_script_list
                                                            (OsinfoDb *db);

`db` : | the database
Returns : | the list of install scripts. [transfer full]

### osinfo_db_get_datamap_list ()

    OsinfoDatamapList * osinfo_db_get_datamap_list          (OsinfoDb *db);

`db` : | the database
Returns : | the list of install datamaps. [transfer full]

### osinfo_db_add_os ()

    void                osinfo_db_add_os                    (OsinfoDb *db,
                                                             OsinfoOs *os);

`db` : | the database
`os` : | an operating system. [transfer none]

### osinfo_db_add_platform ()

    void                osinfo_db_add_platform              (OsinfoDb *db,
                                                             OsinfoPlatform *platform);

`db` : | the database
`platform` : | an platform. [transfer none]

### osinfo_db_add_device ()

    void                osinfo_db_add_device                (OsinfoDb *db,
                                                             OsinfoDevice *device);

`db` : | the database
`device` : | a device. [transfer none]

### osinfo_db_add_deployment ()

    void                osinfo_db_add_deployment            (OsinfoDb *db,
                                                             OsinfoDeployment *deployment);

`db` : | the database
`deployment` : | a deployment. [transfer none]

### osinfo_db_add_datamap ()

    void                osinfo_db_add_datamap               (OsinfoDb *db,
                                                             OsinfoDatamap *datamap);

`db` : | the database
`datamap` : | an install datamap. [transfer none]

### osinfo_db_add_install_script ()

    void                osinfo_db_add_install_script        (OsinfoDb *db,
                                                             OsinfoInstallScript *script);

`db` : | the database
`script` : | an install script. [transfer none]

### osinfo_db_guess_os_from_media ()

    OsinfoOs *          osinfo_db_guess_os_from_media       (OsinfoDb *db,
                                                             OsinfoMedia *media,
                                                             OsinfoMedia **matched_media);

### Warning

`osinfo_db_guess_os_from_media` has been deprecated since version 0.2.3 and should not be used in newly-written code. Use `osinfo_db_identify_media()` instead.

Guess operating system given an OsinfoMedia object.

`db` : | the database
`media` : | the installation media
`matched_media` : | the matched operating system media. [out][transfer none][allow-none]
Returns : | the operating system, or NULL if guessing failed. [transfer none]

### osinfo_db_identify_media ()

    gboolean            osinfo_db_identify_media            (OsinfoDb *db,
                                                             OsinfoMedia *media);

Try to match a newly created `media` with a media description from `db`. If found, `media` will be filled with the corresponding information stored in `db`. In particular, after a call to `osinfo_db_identify_media()`, if the media could be identified, its OsinfoEntify::id and OsinfoMedia::os properties will be set.

`db` : | an OsinfoDb database
`media` : | the installation media data
Returns : | TRUE if `media` was found in `db`, FALSE otherwise

### osinfo_db_guess_os_from_tree ()

    OsinfoOs *          osinfo_db_guess_os_from_tree        (OsinfoDb *db,
                                                             OsinfoTree *tree,
                                                             OsinfoTree **matched_tree);

Guess operating system given an OsinfoTree object.

`db` : | the database
`tree` : | the installation tree
`matched_tree` : | the matched operating system tree. [out][transfer none][allow-none]
Returns : | the operating system, or NULL if guessing failed. [transfer none]

### osinfo_db_unique_values_for_property_in_os ()

    GList *             osinfo_db_unique_values_for_property_in_os
                                                            (OsinfoDb *db,
                                                             const gchar *propName);

Get all unique values for a named property amongst all operating systems in the database

`db` : | the database
`propName` : | a property name
Returns : | a list of strings. [transfer container][element-type utf8]

### osinfo_db_unique_values_for_property_in_platform ()

    GList *             osinfo_db_unique_values_for_property_in_platform
                                                            (OsinfoDb *db,
                                                             const gchar *propName);

Get all unique values for a named property amongst all platforms in the database

`db` : | the database
`propName` : | a property name
Returns : | a list of strings. [transfer container][element-type utf8]

### osinfo_db_unique_values_for_property_in_device ()

    GList *             osinfo_db_unique_values_for_property_in_device
                                                            (OsinfoDb *db,
                                                             const gchar *propName);

Get all unique values for a named property amongst all devices in the database

`db` : | the database
`propName` : | a property name
Returns : | a list of strings. [transfer container][element-type utf8]

### osinfo_db_unique_values_for_property_in_deployment ()

    GList *             osinfo_db_unique_values_for_property_in_deployment
                                                            (OsinfoDb *db,
                                                             const gchar *propName);

Get all unique values for a named property amongst all deployments in the database

`db` : | the database
`propName` : | a property name
Returns : | a list of strings. [transfer container][element-type utf8]

### osinfo_db_unique_values_for_os_relationship ()

    OsinfoOsList *      osinfo_db_unique_values_for_os_relationship
                                                            (OsinfoDb *db,
                                                             OsinfoProductRelationship relshp);

Get all operating systems that are the referee in an operating system relationship.

`db` : | the database
`relshp` : | the product relationship
Returns : | a list of operating systems. [transfer full]

### osinfo_db_unique_values_for_platform_relationship ()

    OsinfoPlatformList * osinfo_db_unique_values_for_platform_relationship
                                                            (OsinfoDb *db,
                                                             OsinfoProductRelationship relshp);

Get all platforms that are the referee in an platform relationship.

`db` : | the database
`relshp` : | the product relationship
Returns : | a list of virtualization platforms. [transfer full]

## See Also

OsinfoList, OsinfoEntity