## PkBitfield PkBitfield — Bitfield object |

## Functions

#define | pk_bitfield_add()
#define | pk_bitfield_remove()
#define | pk_bitfield_invert()
#define | pk_bitfield_contain()
#define | pk_bitfield_value()
gint | pk_bitfield_contain_priority ()
PkBitfield | pk_bitfield_from_enums ()
PkBitfield | pk_role_bitfield_from_string ()
gchar * | pk_role_bitfield_to_string ()
PkBitfield | pk_group_bitfield_from_string ()
gchar * | pk_group_bitfield_to_string ()
PkBitfield | pk_filter_bitfield_from_string ()
gchar * | pk_filter_bitfield_to_string ()
PkBitfield | pk_transaction_flag_bitfield_from_string ()
gchar * | pk_transaction_flag_bitfield_to_string ()

## Types and Values

typedef | PkBitfield
#define | PK_BITFIELD_FORMAT

## Description

PkBitfield provides a method of using enumerations in a bitfield.

## Functions

### pk_bitfield_add()

    #define pk_bitfield_add(bitfield,enum)		do { ((bitfield) |= (pk_bitfield_value(enum))); } while (0)

Set a value in a bitfield

#### Parameters

bitfield | a PkBitfield |
enum | value to add |

### pk_bitfield_remove()

    #define pk_bitfield_remove(bitfield,enum) do { ((bitfield) &= ~(pk_bitfield_value(enum))); } while (0)

Remove a value from a bitfield

#### Parameters

bitfield | a PkBitfield |
enum | value to remove |

### pk_bitfield_invert()

    #define pk_bitfield_invert(bitfield,enum) do { ((bitfield) ^= (pk_bitfield_value(enum))); } while (0)

Invert a value in a bitfield

#### Parameters

bitfield | a PkBitfield |
enum | value to invert |

### pk_bitfield_contain()

    #define pk_bitfield_contain(bitfield,enum) (((bitfield) & (pk_bitfield_value(enum))) > 0)

Check if a bitfield contains a value

#### Parameters

bitfield | a PkBitfield |
enum | value to check |

#### Returns

`TRUE` if the bitfield contains this value

### pk_bitfield_value()

    #define pk_bitfield_value(enum)			((PkBitfield) 1 << (enum))

Convert an enumerated value to a bitfield value

#### Parameters

enum | enumerated valued to convert |

#### Returns

a bitfield value

### pk_bitfield_contain_priority ()

    gint
    pk_bitfield_contain_priority (PkBitfield values,
                                  gint value,
                                  ...);

Finds elements in a list, but with priority going to the preceeding entry

#### Parameters

values | a valid bitfield instance |
value | the first value we are searching for |
... | additional values to search for, terminated by -1 |

#### Returns

The return enumerated type, or -1 if none are found

Since: 0.5.2

### pk_bitfield_from_enums ()

    PkBitfield
    pk_bitfield_from_enums (gint value,
                            ...);

Create a bitfield with the suppied values set.

#### Parameters

value | the first value we want to add to the bitfield |
... | other values to add, terminated by -1 |

#### Returns

a PkBitfield, or 0 if invalid

Since: 0.5.2

### pk_role_bitfield_from_string ()

    PkBitfield
    pk_role_bitfield_from_string (const gchar *roles);

Converts text representation to its enumerated type bitfield

#### Parameters

roles | the enumerated constant value, e.g. "search-file;update-system" |

#### Returns

The enumerated type values, or 0 for invalid

Since: 0.5.2

### pk_role_bitfield_to_string ()

    gchar *
    pk_role_bitfield_to_string (PkBitfield roles);

Converts a enumerated type bitfield to its text representation

#### Parameters

roles | The enumerated type values |

#### Returns

the enumerated constant value, e.g. "install-file;update-system"

Since: 0.5.2

### pk_group_bitfield_from_string ()

    PkBitfield
    pk_group_bitfield_from_string (const gchar *groups);

Converts text representation to its enumerated type bitfield

#### Parameters

groups | the enumerated constant value, e.g. "available;~gui" |

#### Returns

The enumerated type values, or 0 for invalid

Since: 0.5.2

### pk_group_bitfield_to_string ()

    gchar *
    pk_group_bitfield_to_string (PkBitfield groups);

Converts a enumerated type bitfield to its text representation

#### Parameters

groups | The enumerated type values |

#### Returns

the enumerated constant value, e.g. "gnome;kde"

Since: 0.5.2

### pk_filter_bitfield_from_string ()

    PkBitfield
    pk_filter_bitfield_from_string (const gchar *filters);

Converts text representation to its enumerated type bitfield, or 0 for invalid

#### Parameters

filters | the enumerated constant value, e.g. "available;~gui" |

#### Returns

The enumerated type values

Since: 0.5.2

### pk_filter_bitfield_to_string ()

    gchar *
    pk_filter_bitfield_to_string (PkBitfield filters);

Converts a enumerated type bitfield to its text representation

#### Parameters

filters | The enumerated type values |

#### Returns

the enumerated constant value, e.g. "available;~gui"

Since: 0.5.2

### pk_transaction_flag_bitfield_from_string ()

    PkBitfield
    pk_transaction_flag_bitfield_from_string
                                   (const gchar *transaction_flags);

Converts text representation to its enumerated type bitfield, or 0 for invalid

#### Parameters

transaction_flags | the enumerated constant value, e.g. "only-trusted;simulate" |

#### Returns

The enumerated type values

Since: 0.8.1

### pk_transaction_flag_bitfield_to_string ()

    gchar *
    pk_transaction_flag_bitfield_to_string
                                   (PkBitfield transaction_flags);

Converts a enumerated type bitfield to its text representation

#### Parameters

transaction_flags | The enumerated type values |

#### Returns

the enumerated constant value, e.g. "only-trusted;simulate"

Since: 0.8.1

## Types and Values

### PkBitfield

    typedef guint64 PkBitfield;

A bitfield capable of storing enumerations with up to 64 values.

### PK_BITFIELD_FORMAT

    #define PK_BITFIELD_FORMAT G_GUINT64_FORMAT

printf format string suitable for printing PkBitfield values.