### Class

# AppStreamCompose Unit

#### Description

    class AppStreamCompose.Unit : GObject.Object
    {
      /* No available fields */
    }

No description available.

#### Ancestors

- GObject

#### Descendants

- AscDirectoryUnit

#### Constructors

###### asc_unit_new

Creates a new `AscUnit`.

#### Instance methods

###### asc_unit_add_relevant_path

Add a path to the list of relevant directories. A unit may only read data in paths that were previously registered as relevant.

###### asc_unit_close

Close this unit, possibly freeing its resources. Calls to `read_data()` or `get_contents()` may not produce results until `open()` is called again.

###### asc_unit_dir_exists

Returns `TRUE` if the directory exists and files in it are readable.

###### asc_unit_file_exists

Returns `TRUE` if the filename exists and is readable using %asc_unit_read_data.

###### asc_unit_get_bundle_id

Gets the ID name of the bundle (a package / Flatpak / any entity containing metadata) that this unit represents.

###### asc_unit_get_bundle_id_safe

Gets the ID name of the bundle, normalized to be safe to use in filenames. This may not be the same name as set via asc_unit_get_bundle_id().

###### asc_unit_get_bundle_kind

Gets the bundle kind of this unit.

###### asc_unit_get_contents

Get a list of all files contained by this unit.

###### asc_unit_get_relevant_paths

Get a list of paths that are relevant for data processing.

###### asc_unit_get_user_data

Get user-defined data. This is a helper function for bindings.

###### asc_unit_open

Open this unit, populating its content listing.

###### asc_unit_read_data

Read the contents of the selected file into memory and return them.

###### asc_unit_set_bundle_id

Sets the ID of the bundle represented by this unit.

###### asc_unit_set_bundle_kind

Sets the kind of the bundle this unit represents.

###### asc_unit_set_contents

Set list of files this unit contains.

###### asc_unit_set_user_data

Assign user-defined data to this object. This is a helper function for bindings.

##### Methods inherited from GObject (43)

Please see GObject for a full list of methods.

#### Signals

##### Signals inherited from GObject (1)

###### GObject::notify

The notify signal is emitted on an object when one of its properties has its value set through g_object_set_property(), g_object_set(), et al.

#### Class structure

    struct AppStreamComposeUnitClass {
      GObjectClass parent_class;
      gboolean (* open) (
        AscUnit* unit,
        GError** error
      );
      void (* close) (
        AscUnit* unit
      );
      gboolean (* file_exists) (
        AscUnit* unit,
        const gchar* filename
      );
      gboolean (* dir_exists) (
        AscUnit* unit,
        const gchar* dirname
      );
      GBytes* (* read_data) (
        AscUnit* unit,
        const gchar* filename,
        GError** error
      );
      void (* _as_reserved1) (
    void
      );
      void (* _as_reserved2) (
    void
      );
      void (* _as_reserved3) (
    void
      );
      void (* _as_reserved4) (
    void
      );

    }

No description available.

###### Class members

`parent_class: GObjectClass`

  No description available.

`open: gboolean (* open) ( AscUnit* unit, GError** error )`

  No description available.

`close: void (* close) ( AscUnit* unit )`

  No description available.

`file_exists: gboolean (* file_exists) ( AscUnit* unit, const gchar* filename )`

  No description available.

`dir_exists: gboolean (* dir_exists) ( AscUnit* unit, const gchar* dirname )`

  No description available.

`read_data: GBytes* (* read_data) ( AscUnit* unit, const gchar* filename, GError** error )`

  No description available.

`_as_reserved1: void (* _as_reserved1) ( void )`

  No description available.

`_as_reserved2: void (* _as_reserved2) ( void )`

  No description available.

`_as_reserved3: void (* _as_reserved3) ( void )`

  No description available.

`_as_reserved4: void (* _as_reserved4) ( void )`

  No description available.

#### Virtual methods

###### AppStreamCompose.UnitClass.close

Close this unit, possibly freeing its resources. Calls to `read_data()` or `get_contents()` may not produce results until `open()` is called again.

###### AppStreamCompose.UnitClass.dir_exists

Returns `TRUE` if the directory exists and files in it are readable.

###### AppStreamCompose.UnitClass.file_exists

Returns `TRUE` if the filename exists and is readable using %asc_unit_read_data.

###### AppStreamCompose.UnitClass.open

Open this unit, populating its content listing.

###### AppStreamCompose.UnitClass.read_data

Read the contents of the selected file into memory and return them.