OsinfoProduct

## OsinfoProduct OsinfoProduct — An software product |

## Synopsis

    #define             OSINFO_PRODUCT_PROP_VENDOR
    #define             OSINFO_PRODUCT_PROP_VERSION
    #define             OSINFO_PRODUCT_PROP_SHORT_ID
    #define             OSINFO_PRODUCT_PROP_NAME
    #define             OSINFO_PRODUCT_PROP_RELEASE_DATE
    #define             OSINFO_PRODUCT_PROP_EOL_DATE
    #define             OSINFO_PRODUCT_PROP_CODENAME
    #define             OSINFO_PRODUCT_PROP_LOGO
    struct              OsinfoProduct;
    struct              OsinfoProductClass;
    enum                OsinfoProductRelationship;
    OsinfoProductList * osinfo_product_get_related          (OsinfoProduct *product,
                                                             OsinfoProductRelationship relshp);
    void                osinfo_product_add_related          (OsinfoProduct *product,
                                                             OsinfoProductRelationship relshp,
                                                             OsinfoProduct *otherproduct);
    const gchar *       osinfo_product_get_vendor           (OsinfoProduct *prod);
    const gchar *       osinfo_product_get_version          (OsinfoProduct *prod);
    const gchar *       osinfo_product_get_short_id         (OsinfoProduct *prod);
    const gchar *       osinfo_product_get_name             (OsinfoProduct *prod);
    const gchar *       osinfo_product_get_codename         (OsinfoProduct *prod);
    const gchar *       osinfo_product_get_release_date_string
                                                            (OsinfoProduct *prod);
    const gchar *       osinfo_product_get_eol_date_string  (OsinfoProduct *prod);
    GDate *             osinfo_product_get_release_date     (OsinfoProduct *prod);
    GDate *             osinfo_product_get_eol_date         (OsinfoProduct *prod);
    const gchar *       osinfo_product_get_logo             (OsinfoProduct *prod);

## Object Hierarchy

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

      GEnum
       +----OsinfoProductRelationship

## Properties

      "codename"                 gchar*                : Read
      "logo"                     gchar*                : Read
      "name"                     gchar*                : Read
      "short-id"                 gchar*                : Read
      "vendor"                   gchar*                : Read
      "version"                  gchar*                : Read

## Description

OsinfoProduct is an entity representing an software product. There are relationships amongst products to declare which are newest releases, which are clones and which are derived from a common ancestry.

## Details

### OSINFO_PRODUCT_PROP_VENDOR

    #define OSINFO_PRODUCT_PROP_VENDOR       "vendor"

### OSINFO_PRODUCT_PROP_VERSION

    #define OSINFO_PRODUCT_PROP_VERSION      "version"

### OSINFO_PRODUCT_PROP_SHORT_ID

    #define OSINFO_PRODUCT_PROP_SHORT_ID     "short-id"

### OSINFO_PRODUCT_PROP_NAME

    #define OSINFO_PRODUCT_PROP_NAME         "name"

### OSINFO_PRODUCT_PROP_RELEASE_DATE

    #define OSINFO_PRODUCT_PROP_RELEASE_DATE "release-date"

### OSINFO_PRODUCT_PROP_EOL_DATE

    #define OSINFO_PRODUCT_PROP_EOL_DATE     "eol-date"

### OSINFO_PRODUCT_PROP_CODENAME

    #define OSINFO_PRODUCT_PROP_CODENAME     "codename"

### OSINFO_PRODUCT_PROP_LOGO

    #define OSINFO_PRODUCT_PROP_LOGO         "logo"

### struct OsinfoProduct

    struct OsinfoProduct;

### struct OsinfoProductClass

    struct OsinfoProductClass {
    };

### enum OsinfoProductRelationship

    typedef enum {
        OSINFO_PRODUCT_RELATIONSHIP_DERIVES_FROM,
        OSINFO_PRODUCT_RELATIONSHIP_UPGRADES,
        OSINFO_PRODUCT_RELATIONSHIP_CLONES,
    } OsinfoProductRelationship;

Enum values used to form relationships between products

`OSINFO_PRODUCT_RELATIONSHIP_DERIVES_FROM` | a descendent (RHEL-5 derives from Fedora-6)
`OSINFO_PRODUCT_RELATIONSHIP_UPGRADES` | a new version release (RHEL-6 upgrades RHEL-4)
`OSINFO_PRODUCT_RELATIONSHIP_CLONES` | a perfect clone (CentPRODUCT-5 clones RHEL-5)

### osinfo_product_get_related ()

    OsinfoProductList * osinfo_product_get_related          (OsinfoProduct *product,
                                                             OsinfoProductRelationship relshp);

Get a list of products satisfying the requested relationship

`product` : | an product
`relshp` : | the relationship to query
Returns : | a list of related products. [transfer full]

### osinfo_product_add_related ()

    void                osinfo_product_add_related          (OsinfoProduct *product,
                                                             OsinfoProductRelationship relshp,
                                                             OsinfoProduct *otherproduct);

Add an association between two products

`product` : | a product
`relshp` : | the relationship
`otherproduct` : | the product to relate to. [transfer none]

### osinfo_product_get_vendor ()

    const gchar *       osinfo_product_get_vendor           (OsinfoProduct *prod);

### osinfo_product_get_version ()

    const gchar *       osinfo_product_get_version          (OsinfoProduct *prod);

### osinfo_product_get_short_id ()

    const gchar *       osinfo_product_get_short_id         (OsinfoProduct *prod);

### osinfo_product_get_name ()

    const gchar *       osinfo_product_get_name             (OsinfoProduct *prod);

### osinfo_product_get_codename ()

    const gchar *       osinfo_product_get_codename         (OsinfoProduct *prod);

### osinfo_product_get_release_date_string ()

    const gchar *       osinfo_product_get_release_date_string
                                                            (OsinfoProduct *prod);

### osinfo_product_get_eol_date_string ()

    const gchar *       osinfo_product_get_eol_date_string  (OsinfoProduct *prod);

### osinfo_product_get_release_date ()

    GDate *             osinfo_product_get_release_date     (OsinfoProduct *prod);

### osinfo_product_get_eol_date ()

    GDate *             osinfo_product_get_eol_date         (OsinfoProduct *prod);

### osinfo_product_get_logo ()

    const gchar *       osinfo_product_get_logo             (OsinfoProduct *prod);

## Property Details

### The `"codename"` property

      "codename"                 gchar*                : Read

The codename of this product.

Default value: NULL

### The `"logo"` property

      "logo"                     gchar*                : Read

The URI of the logo of the product.

Default value: NULL

### The `"name"` property

      "name"                     gchar*                : Read

The name of this product.

Default value: NULL

### The `"short-id"` property

      "short-id"                 gchar*                : Read

The short ID of this product.

Default value: NULL

### The `"vendor"` property

      "vendor"                   gchar*                : Read

The Vendor of this product.

Default value: NULL

### The `"version"` property

      "version"                  gchar*                : Read

The version of the product.

Default value: NULL

## See Also

OsinfoProduct, OsinfoPlatform