## eom-metadata-reader eom-metadata-reader |

## Synopsis

    #define             EOM_METADATA_READER_GET_INTERFACE   (o)
                        EomMetadataReader;
    struct              EomMetadataReaderInterface;
    enum                EomMetadataFileType;
    EomMetadataReader * eom_metadata_reader_new             (EomMetadataFileType type);
    void                eom_metadata_reader_consume         (EomMetadataReader *emr,
                                                             const guchar *buf,
                                                             guint len);
    gboolean            eom_metadata_reader_finished        (EomMetadataReader *emr);
    void                eom_metadata_reader_get_exif_chunk  (EomMetadataReader *emr,
                                                             guchar **data,
                                                             guint *len);
    ExifData *          eom_metadata_reader_get_exif_data   (EomMetadataReader *emr);
    XmpPtr              eom_metadata_reader_get_xmp_data    (EomMetadataReader *emr);
    gpointer            eom_metadata_reader_get_iptc_chunk  (EomMetadataReader *emr);
    IptcData *          eom_metadata_reader_get_iptc_data   (EomMetadataReader *emr);
    cmsHPROFILE         eom_metadata_reader_get_icc_profile (EomMetadataReader *emr);

## Object Hierarchy

      GInterface
       +----EomMetadataReader

## Known Implementations

EomMetadataReader is implemented by EomMetadataReaderJpg and EomMetadataReaderPng.

## Description

## Details

### EOM_METADATA_READER_GET_INTERFACE()

    #define EOM_METADATA_READER_GET_INTERFACE(o)  (G_TYPE_INSTANCE_GET_INTERFACE ((o), EOM_TYPE_METADATA_READER, EomMetadataReaderInterface))

### EomMetadataReader

    typedef struct _EomMetadataReader EomMetadataReader;

### struct EomMetadataReaderInterface

    struct EomMetadataReaderInterface {
    	GTypeInterface parent;

    	void		(*consume)		(EomMetadataReader *self,
    						 const guchar *buf,
    						 guint len);

    	gboolean (*finished)		(EomMetadataReader *self);

    	void		(*get_raw_exif)		(EomMetadataReader *self,
    						 guchar **data,
    						 guint *len);

    	gpointer (*get_exif_data) (EomMetadataReader *self);

    	gpointer (*get_icc_profile) (EomMetadataReader *self);

    	gpointer (*get_xmp_ptr)		(EomMetadataReader *self);
    };

### enum EomMetadataFileType

    typedef enum {
    	EOM_METADATA_JPEG,
    	EOM_METADATA_PNG
    } EomMetadataFileType;

`EOM_METADATA_JPEG` |
`EOM_METADATA_PNG` |

### eom_metadata_reader_new ()

    EomMetadataReader * eom_metadata_reader_new             (EomMetadataFileType type);

### eom_metadata_reader_consume ()

    void                eom_metadata_reader_consume         (EomMetadataReader *emr,
                                                             const guchar *buf,
                                                             guint len);

### eom_metadata_reader_finished ()

    gboolean            eom_metadata_reader_finished        (EomMetadataReader *emr);

### eom_metadata_reader_get_exif_chunk ()

    void                eom_metadata_reader_get_exif_chunk  (EomMetadataReader *emr,
                                                             guchar **data,
                                                             guint *len);

### eom_metadata_reader_get_exif_data ()

    ExifData *          eom_metadata_reader_get_exif_data   (EomMetadataReader *emr);

### eom_metadata_reader_get_xmp_data ()

    XmpPtr              eom_metadata_reader_get_xmp_data    (EomMetadataReader *emr);

### eom_metadata_reader_get_iptc_chunk ()

    gpointer            eom_metadata_reader_get_iptc_chunk  (EomMetadataReader *emr);

### eom_metadata_reader_get_iptc_data ()

    IptcData *          eom_metadata_reader_get_iptc_data   (EomMetadataReader *emr);

### eom_metadata_reader_get_icc_profile ()

    cmsHPROFILE         eom_metadata_reader_get_icc_profile (EomMetadataReader *emr);