## pk-package-id pk-package-id — Functionality to read a PackageID |

## Synopsis

    #define             PK_PACKAGE_ID_ARCH
    #define             PK_PACKAGE_ID_DATA
    #define             PK_PACKAGE_ID_NAME
    #define             PK_PACKAGE_ID_VERSION
    gchar *             pk_package_id_build                 (const gchar *name,
                                                             const gchar *version,
                                                             const gchar *arch,
                                                             const gchar *data);
    gboolean            pk_package_id_check                 (const gchar *package_id);
    gboolean            pk_package_id_equal_fuzzy_arch      (const gchar *package_id1,
                                                             const gchar *package_id2);
    gchar **            pk_package_id_split                 (const gchar *package_id);
    void                pk_package_id_test                  (gpointer user_data);
    gchar *             pk_package_id_to_printable          (const gchar *package_id);

## Description

## Details

### PK_PACKAGE_ID_ARCH

    #define PK_PACKAGE_ID_ARCH 2

Alias to get an arch field from the result of pk_package_id_split

### PK_PACKAGE_ID_DATA

    #define PK_PACKAGE_ID_DATA 3

Alias to get a data field from the result of pk_package_id_split

### PK_PACKAGE_ID_NAME

    #define PK_PACKAGE_ID_NAME 0

Alias to get a name field from the result of pk_package_id_split

### PK_PACKAGE_ID_VERSION

    #define PK_PACKAGE_ID_VERSION 1

Alias to get a version field from the result of pk_package_id_split

### pk_package_id_build ()

    gchar *             pk_package_id_build                 (const gchar *name,
                                                             const gchar *version,
                                                             const gchar *arch,
                                                             const gchar *data);

`name` : | the package name
`version` : | the package version
`arch` : | the package architecture
`data` : | the package extra data
Returns : | returns a string to form the PackageID.

Since 0.5.0

### pk_package_id_check ()

    gboolean            pk_package_id_check                 (const gchar *package_id);

`package_id` : | the PackageID to check
Returns : | `TRUE` if the PackageID was well formed.

Since 0.5.0

### pk_package_id_equal_fuzzy_arch ()

    gboolean            pk_package_id_equal_fuzzy_arch      (const gchar *package_id1,
                                                             const gchar *package_id2);

Only compare the name, version, and arch, where the architecture will fuzzy match with i*86.

`package_id1` : | the first PackageID
`package_id2` : | the second PackageID
Returns : | `TRUE` if the PackageIDs can be considered equal.

Since 0.5.0

### pk_package_id_split ()

    gchar **            pk_package_id_split                 (const gchar *package_id);

Splits a PackageID into the correct number of parts, checking the correct number of delimiters are present.

`package_id` : | the ; delimited PackageID to split
Returns : | a GStrv or `NULL` if invalid, use `g_strfreev()` to free. [transfer full]

Since 0.5.3

### pk_package_id_test ()

    void                pk_package_id_test                  (gpointer user_data);

### pk_package_id_to_printable ()

    gchar *             pk_package_id_to_printable          (const gchar *package_id);

Formats the PackageID to be printable to the user.

`package_id` : | the PackageID
Returns : | the name-version.arch formatted string, use `g_free()` to free.

Since 0.5.2