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

## Functions

void | pk_package_id_test ()
gchar * | pk_package_id_build ()
gboolean | pk_package_id_check ()
gchar ** | pk_package_id_split ()
gchar * | pk_package_id_to_printable ()
gboolean | pk_package_id_equal_fuzzy_arch ()

## Types and Values

#define | PK_PACKAGE_ID_NAME
#define | PK_PACKAGE_ID_VERSION
#define | PK_PACKAGE_ID_ARCH
#define | PK_PACKAGE_ID_DATA

## Description

## Functions

### pk_package_id_test ()

    void
    pk_package_id_test (gpointer user_data);

### pk_package_id_build ()

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

#### Parameters

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);

#### Parameters

package_id | the PackageID to check |

#### Returns

`TRUE` if the PackageID was well formed.

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.

#### Parameters

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_to_printable ()

    gchar *
    pk_package_id_to_printable (const gchar *package_id);

Formats the PackageID to be printable to the user.

#### Parameters

package_id | the PackageID |

#### Returns

the name-version.arch formatted string, use `g_free()` to free.

Since 0.5.2

### 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.

#### Parameters

package_id1 | the first PackageID |
package_id2 | the second PackageID |

#### Returns

`TRUE` if the PackageIDs can be considered equal.

Since 0.5.0

## Types and Values

### 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_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