OsinfoOs

## OsinfoOs OsinfoOs — An operating system |

## Synopsis

    #define             OSINFO_OS_PROP_FAMILY
    #define             OSINFO_OS_PROP_DISTRO
                        OsinfoOs;
    struct              OsinfoOsClass;
    OsinfoOs *          osinfo_os_new                       (const gchar *id);
    OsinfoDeviceList *  osinfo_os_get_devices               (OsinfoOs *os,
                                                             OsinfoFilter *filter);
    OsinfoDeviceList *  osinfo_os_get_all_devices           (OsinfoOs *os,
                                                             OsinfoFilter *filter);
    OsinfoDeviceList *  osinfo_os_get_devices_by_property   (OsinfoOs *os,
                                                             const char *property,
                                                             const char *value,
                                                             gboolean inherited);
    OsinfoDeviceLinkList * osinfo_os_get_device_links       (OsinfoOs *os,
                                                             OsinfoFilter *filter);
    OsinfoDeviceLink *  osinfo_os_add_device                (OsinfoOs *os,
                                                             OsinfoDevice *dev);
    const gchar *       osinfo_os_get_family                (OsinfoOs *os);
    const gchar *       osinfo_os_get_distro                (OsinfoOs *os);
    OsinfoMediaList *   osinfo_os_get_media_list            (OsinfoOs *os);
    void                osinfo_os_add_media                 (OsinfoOs *os,
                                                             OsinfoMedia *media);
    OsinfoTreeList *    osinfo_os_get_tree_list             (OsinfoOs *os);
    void                osinfo_os_add_tree                  (OsinfoOs *os,
                                                             OsinfoTree *tree);
    OsinfoResourcesList * osinfo_os_get_minimum_resources   (OsinfoOs *os);
    OsinfoResourcesList * osinfo_os_get_recommended_resources
                                                            (OsinfoOs *os);
    void                osinfo_os_add_minimum_resources     (OsinfoOs *os,
                                                             OsinfoResources *resources);
    void                osinfo_os_add_recommended_resources (OsinfoOs *os,
                                                             OsinfoResources *resources);
    OsinfoInstallScript * osinfo_os_find_install_script     (OsinfoOs *os,
                                                             const gchar *profile);
    OsinfoInstallScriptList * osinfo_os_get_install_script_list
                                                            (OsinfoOs *os);
    void                osinfo_os_add_install_script        (OsinfoOs *os,
                                                             OsinfoInstallScript *script);
    OsinfoDeviceDriverList * osinfo_os_get_device_drivers   (OsinfoOs *os);
    void                osinfo_os_add_device_driver         (OsinfoOs *os,
                                                             OsinfoDeviceDriver *driver);

## Object Hierarchy

      GObject
       +----OsinfoEntity
             +----OsinfoProduct
                   +----OsinfoOs

## Properties

      "distro"                   gchar*                : Read
      "family"                   gchar*                : Read

## Description

OsinfoOs is an entity representing an operating system. Operating systems have a list of supported devices. There are relationships amongst operating systems to declare which are newest releases, which are clones and which are derived from a common ancestry.

## Details

### OSINFO_OS_PROP_FAMILY

    #define OSINFO_OS_PROP_FAMILY    "family"

### OSINFO_OS_PROP_DISTRO

    #define OSINFO_OS_PROP_DISTRO    "distro"

### OsinfoOs

    typedef struct _OsinfoOs OsinfoOs;

### struct OsinfoOsClass

    struct OsinfoOsClass {
    };

### osinfo_os_new ()

    OsinfoOs *          osinfo_os_new                       (const gchar *id);

Create a new operating system entity

`id` : | a unique identifier
Returns : | a new operating system entity. [transfer full]

### osinfo_os_get_devices ()

    OsinfoDeviceList *  osinfo_os_get_devices               (OsinfoOs *os,
                                                             OsinfoFilter *filter);

Get all devices matching a given filter

`os` : | an operating system
`filter` : | an optional device property filter. [allow-none][transfer none]
Returns : | A list of devices. [transfer full]

### osinfo_os_get_all_devices ()

    OsinfoDeviceList *  osinfo_os_get_all_devices           (OsinfoOs *os,
                                                             OsinfoFilter *filter);

Get all devices matching a given filter but unlike osinfo_os_get_devices this function also retrieves devices from all derived and cloned operating systems.

`os` : | an operating system
`filter` : | an optional device property filter. [allow-none][transfer none]
Returns : | A list of devices. [transfer full]

### osinfo_os_get_devices_by_property ()

    OsinfoDeviceList *  osinfo_os_get_devices_by_property   (OsinfoOs *os,
                                                             const char *property,
                                                             const char *value,
                                                             gboolean inherited);

A utility function that gets devices found from the list of devices `os` supports, for which the value of `property` is `value`.

`os` : | an operating system
`property` : | the property of interest
`value` : | the required value of property `property`
`inherited` : | Should devices from inherited and cloned OSs be included in the search.
Returns : | The found devices. [transfer full]

### osinfo_os_get_device_links ()

    OsinfoDeviceLinkList * osinfo_os_get_device_links       (OsinfoOs *os,
                                                             OsinfoFilter *filter);

Get all devices matching a given filter. The filter matches against the links, not the devices.

`os` : | an operating system
`filter` : | an optional device property filter. [allow-none][transfer none]
Returns : | A list of device links. [transfer full]

### osinfo_os_add_device ()

    OsinfoDeviceLink *  osinfo_os_add_device                (OsinfoOs *os,
                                                             OsinfoDevice *dev);

Associated a device with an operating system. The returned OsinfoDeviceLink can be used to record extra metadata against the link

`os` : | an operating system
`dev` : | the device to associate with. [transfer none]
Returns : | the device association. [transfer none]

### osinfo_os_get_family ()

    const gchar *       osinfo_os_get_family                (OsinfoOs *os);

Retrieves the generic family the OS `os` belongs to, based upon its kernel, for example linux, winnt, solaris, freebsd etc.

`os` : | an OsinfoOs
Returns : | the family of this os. [transfer none]

### osinfo_os_get_distro ()

    const gchar *       osinfo_os_get_distro                (OsinfoOs *os);

Retrieves the generic family the OS `os` belongs to, for example fedora, ubuntu, windows, solaris, freebsd etc.

`os` : | an OsinfoOs
Returns : | the distro of this os. [transfer none]

### osinfo_os_get_media_list ()

    OsinfoMediaList *   osinfo_os_get_media_list            (OsinfoOs *os);

Get all installation medias associated with operating system `os`.

`os` : | an operating system
Returns : | A list of medias. [transfer full]

### osinfo_os_add_media ()

    void                osinfo_os_add_media                 (OsinfoOs *os,
                                                             OsinfoMedia *media);

Adds installation media `media` to operating system `os`.

`os` : | an operating system
`media` : | the media to add. [transfer none]

### osinfo_os_get_tree_list ()

    OsinfoTreeList *    osinfo_os_get_tree_list             (OsinfoOs *os);

Get all installation trees associated with operating system `os`.

`os` : | an operating system
Returns : | A list of trees. [transfer full]

### osinfo_os_add_tree ()

    void                osinfo_os_add_tree                  (OsinfoOs *os,
                                                             OsinfoTree *tree);

Adds installation tree `tree` to operating system `os`.

`os` : | an operating system
`tree` : | the tree to add. [transfer none]

### osinfo_os_get_minimum_resources ()

    OsinfoResourcesList * osinfo_os_get_minimum_resources   (OsinfoOs *os);

Get the list of minimum required resources for the operating system `os`.

`os` : | an operating system
Returns : | A list of resources. [transfer full]

### osinfo_os_get_recommended_resources ()

    OsinfoResourcesList * osinfo_os_get_recommended_resources
                                                            (OsinfoOs *os);

Get the list of recommended resources for the operating system `os`.

`os` : | an operating system
Returns : | A list of resources. [transfer full]

### osinfo_os_add_minimum_resources ()

    void                osinfo_os_add_minimum_resources     (OsinfoOs *os,
                                                             OsinfoResources *resources);

Adds `resources` to list of minimum resources of operating system `os`.

`os` : | an operating system
`resources` : | the resources to add. [transfer none]

### osinfo_os_add_recommended_resources ()

    void                osinfo_os_add_recommended_resources (OsinfoOs *os,
                                                             OsinfoResources *resources);

Adds `resources` to list of recommended resources of operating system `os`.

`os` : | an operating system
`resources` : | the resources to add. [transfer none]

### osinfo_os_find_install_script ()

    OsinfoInstallScript * osinfo_os_find_install_script     (OsinfoOs *os,
                                                             const gchar *profile);

`os` : | an operating system
`profile` : | the install script profile
Returns : | A new OsinfoInstallScript for the `os` `profile`. [transfer full]

### osinfo_os_get_install_script_list ()

    OsinfoInstallScriptList * osinfo_os_get_install_script_list
                                                            (OsinfoOs *os);

`os` : | an operating system
Returns : | a list of the install scripts for the specified os. [transfer full]

### osinfo_os_add_install_script ()

    void                osinfo_os_add_install_script        (OsinfoOs *os,
                                                             OsinfoInstallScript *script);

### osinfo_os_get_device_drivers ()

    OsinfoDeviceDriverList * osinfo_os_get_device_drivers   (OsinfoOs *os);

Gets list of all available device drivers for OS `os`.

`os` : | an operating system
Returns : | A list of device drivers. [transfer none]

### osinfo_os_add_device_driver ()

    void                osinfo_os_add_device_driver         (OsinfoOs *os,
                                                             OsinfoDeviceDriver *driver);

## Property Details

### The `"distro"` property

      "distro"                   gchar*                : Read

The generic distro this OS belongs to, for example fedora, windows, solaris, freebsd etc.

Default value: NULL

### The `"family"` property

      "family"                   gchar*                : Read

The generic family this OS belongs to, based upon its kernel, for example linux, winnt, solaris, freebsd etc.

Default value: NULL

## See Also

OsinfoOs, OsinfoDeployment