### Class

# Gegl MetadataStore

#### Description

    abstract class Gegl.MetadataStore : GObject.Object
      implements Gegl.Metadata {
      /* No available fields */
    }

No description available.

#### Hierarchy

#### Ancestors

- GObject

#### Descendants

- GeglMetadataHash

#### Implements

- GeglMetadata

#### Instance methods

###### gegl_metadata_store_declare

Declare a metadata value using a `GParamSpec`.

###### gegl_metadata_store_get_artist

Get name of image creator.

###### gegl_metadata_store_get_comment

Get the comment.

###### gegl_metadata_store_get_copyright

Get the copyright notice.

###### gegl_metadata_store_get_description

Get description of image.

###### gegl_metadata_store_get_disclaimer

Get the legal disclaimer.

###### gegl_metadata_store_get_file_module_name

Return the name registered by the current file module.

###### gegl_metadata_store_get_resolution_unit

Get the units used for resolution.

###### gegl_metadata_store_get_resolution_x

Get the X resolution or density in dots per unit.

###### gegl_metadata_store_get_resolution_y

Get the Y resolution or density in dots per unit.

###### gegl_metadata_store_get_software

Get software used to create the image.

###### gegl_metadata_store_get_source

Get device used to create the image.

###### gegl_metadata_store_get_string

A slightly more efficient version of `gegl_metadata_store_get_value()` for string values avoiding a duplication. Otherwise it behaves the same gegl_metadata_store_get_value().

###### gegl_metadata_store_get_timestamp

Get time of original image creation.

###### gegl_metadata_store_get_title

Get title or caption for image.

###### gegl_metadata_store_get_value

Retrieve the metadata value. `value` must be initialised with a compatible type. If the value is unset or has not been previously declared `value` is unchanged and an error message is logged.

###### gegl_metadata_store_get_warning

Get warning.

###### gegl_metadata_store_has_value

Test whether the `GeglMetadataStore` contains a value for the specified name.

###### gegl_metadata_store_notify

Gegl_metadata_store_notify() is called by subclasses when the value of a metadata variable changes. It emits the `::changed` signal with the variable name as the detail parameter. Set `shadow` = `TRUE` if variable is shadowed by a property so that a notify signal is emitted with the property name as the detail parameter.

###### gegl_metadata_store_register

No description available.

###### gegl_metadata_store_set_artist

Set name of image creator.

###### gegl_metadata_store_set_comment

Set the miscellaneous comment; conversion from GIF comment.

###### gegl_metadata_store_set_copyright

Set the copyright notice.

###### gegl_metadata_store_set_description

Set description of image.

###### gegl_metadata_store_set_disclaimer

Set the legal disclaimer.

###### gegl_metadata_store_set_resolution_unit

Set the units used for the resolution (density) values.

###### gegl_metadata_store_set_resolution_x

Set the X resolution or density in dots per unit.

###### gegl_metadata_store_set_resolution_y

Set the Y resolution or density in dots per unit.

###### gegl_metadata_store_set_software

Set software used to create the image.

###### gegl_metadata_store_set_source

Set device used to create the image.

###### gegl_metadata_store_set_string

A slightly more efficient version of `gegl_metadata_store_set_value()` for string values avoiding a duplication. Otherwise it behaves the same gegl_metadata_store_set_value().

###### gegl_metadata_store_set_timestamp

Set time of original image creation.

###### gegl_metadata_store_set_title

Set title or caption for image.

###### gegl_metadata_store_set_value

Set the specified metadata value. If `value` is `NULL` the default value from the associated `GParamSpec` is used. This operation will fail if the value has not been previously declared. A `changed::name` signal is emitted when the value is set. If the value is shadowed by a property a `notify::name` signal is also emitted.

###### gegl_metadata_store_set_warning

Set the warning of nature of content.

###### gegl_metadata_store_typeof_value

Get the declared type of the value in the `GeglMetadataStore`.

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

Please see GObject for a full list of methods.

##### Methods inherited from GeglMetadata (9)

###### gegl_metadata_get_resolution

Retrieve resolution from the application image metadata. Intended for use by the image file writer. If resolution is not supported by the application or if the operation fails `FALSE` is returned and the resolution values are not updated.

###### gegl_metadata_iter_get_value

Retrieve image file metadata from the application. Intended for use by the image file writer. If the operation fails it returns `FALSE` and `value` is not updated.

###### gegl_metadata_iter_init

Initialise an iterator to find all supported metadata keys.

###### gegl_metadata_iter_lookup

Look up the specified key and initialise an iterator to reference the associated metadata. The iterator is used in conjunction with `gegl_metadata_set_value()` and gegl_metadata_get_value(). Note that this iterator is not valid for gegl_metadata_iter_next().

###### gegl_metadata_iter_next

Move the iterator to the next metadata item.

###### gegl_metadata_iter_set_value

Set application data retrieved from image file’s metadata. Intended for use by the image file reader. If the operation fails it returns `FALSE` and `value` is ignored.

###### gegl_metadata_register_map

Set the name of the file module and pass an array of mappings from file-format specific metadata names to those used by Gegl. A GValue transformation function may be supplied, e.g. to parse or format timestamps.

###### gegl_metadata_set_resolution

Set resolution retrieved from image file’s metadata. Intended for use by the image file reader. If resolution is not supported by the application or if the operation fails `FALSE` is returned and the values are ignored.

###### gegl_metadata_unregister_map

Unregister the file module mappings and any further mappings added or modified by the application. This should be called after the file module completes operations.

#### Properties

###### Gegl.MetadataStore:artist

Name of image creator.

###### Gegl.MetadataStore:comment

Miscellaneous comment; conversion from GIF comment.

###### Gegl.MetadataStore:copyright

Copyright notice.

###### Gegl.MetadataStore:description

Description of image (possibly long).

###### Gegl.MetadataStore:disclaimer

Legal disclaimer.

###### Gegl.MetadataStore:file-module-name

Current file loader/saver module name. Valid only while a `GeglMetadata` mapping is registered. This property is mainly provided for use in signal handlers.

###### Gegl.MetadataStore:resolution-unit

A `GeglResolutionUnit` specifying units for the image resolution (density).

###### Gegl.MetadataStore:resolution-x

X resolution or density in dots per unit.

###### Gegl.MetadataStore:resolution-y

Y resolution or density in dots per unit.

###### Gegl.MetadataStore:software

Software used to create the image.

###### Gegl.MetadataStore:source

Device used to create the image.

###### Gegl.MetadataStore:timestamp

Time of original image creation.

###### Gegl.MetadataStore:title

Short (one line) title or caption for image.

###### Gegl.MetadataStore:warning

Warning of nature of content.

#### Signals

###### Gegl.MetadataStore::changed

`::changed` is emitted when a metadata value is changed. This is analogous to the `GObject::notify` signal.

###### Gegl.MetadataStore::generate-value

If a signal handler is connected to `::generate-value` a signal is emitted when the file module accesses a value using gegl_metadata_get_value(). The signal handler must generate a value of the type specified in the pspec argument. The signal handler’s return value indicates the success of the operation.

###### Gegl.MetadataStore::mapped

`::mapped` is emitted after a file module registers a mapping and before other processing takes place. An application may respond to the signal by registering additional mappings or overriding existing values, for example it might override the TIFF ImageDescription tag to format multiple metadata values into the description.

###### Gegl.MetadataStore::parse-value

If a signal handler is connected to `::parse-value` a signal is emitted when the file module accesses a value using gegl_metadata_set_value(). The signal handler should parse the value supplied in the `GValue` and may set any number of metadata values using gegl_metadata_store_set_value().

###### Gegl.MetadataStore::unmapped

`::unmapped` is emitted when a file module tries to look up an unmapped metadata name. When the handler returns a second attempt is made to look up the metadata.

##### 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 GeglMetadataStoreClass {
      void (* _declare) (
        GeglMetadataStore* self,
        GParamSpec* pspec,
        gboolean shadow
      );
      GParamSpec* (* pspec) (
        GeglMetadataStore* self,
        const gchar* name
      );
      void (* set_value) (
        GeglMetadataStore* self,
        const gchar* name,
        const GValue* value
      );
      const GValue* (* _get_value) (
        GeglMetadataStore* self,
        const gchar* name
      );
      gboolean (* has_value) (
        GeglMetadataStore* self,
        const gchar* name
      );
      void (* register_hook) (
        GeglMetadataStore* self,
        const gchar* file_module_name,
        guint flags
      );
      gboolean (* parse_value) (
        GeglMetadataStore* self,
        GParamSpec* pspec,
        GValueTransform transform,
        const GValue* value
      );
      gboolean (* generate_value) (
        GeglMetadataStore* self,
        GParamSpec* pspec,
        GValueTransform transform,
        GValue* value
      );

    }

The class structure for the `GeglMetadataStore`.

###### Class members

`_declare: void (* _declare) ( GeglMetadataStore* self, GParamSpec* pspec, gboolean shadow )`

  No description available.

`pspec: GParamSpec* (* pspec) ( GeglMetadataStore* self, const gchar* name )`

  No description available.

`set_value: void (* set_value) ( GeglMetadataStore* self, const gchar* name, const GValue* value )`

  No description available.

`_get_value: const GValue* (* _get_value) ( GeglMetadataStore* self, const gchar* name )`

  No description available.

`has_value: gboolean (* has_value) ( GeglMetadataStore* self, const gchar* name )`

  No description available.

`register_hook: void (* register_hook) ( GeglMetadataStore* self, const gchar* file_module_name, guint flags )`

  No description available.

`parse_value: gboolean (* parse_value) ( GeglMetadataStore* self, GParamSpec* pspec, GValueTransform transform, const GValue* value )`

  No description available.

`generate_value: gboolean (* generate_value) ( GeglMetadataStore* self, GParamSpec* pspec, GValueTransform transform, GValue* value )`

  No description available.

#### Virtual methods

###### Gegl.MetadataStoreClass._declare

No description available.

###### Gegl.MetadataStoreClass._get_value

No description available.

###### Gegl.MetadataStoreClass.generate_value

No description available.

###### Gegl.MetadataStoreClass.has_value

Test whether the `GeglMetadataStore` contains a value for the specified name.

###### Gegl.MetadataStoreClass.parse_value

No description available.

###### Gegl.MetadataStoreClass.pspec

No description available.

###### Gegl.MetadataStoreClass.register_hook

No description available.

###### Gegl.MetadataStoreClass.set_value

Set the specified metadata value. If `value` is `NULL` the default value from the associated `GParamSpec` is used. This operation will fail if the value has not been previously declared. A `changed::name` signal is emitted when the value is set. If the value is shadowed by a property a `notify::name` signal is also emitted.