exif-loader.h File Reference

Defines the ExifLoader type. More...

`#include <libexif/exif-data.h>`
`#include <libexif/exif-log.h>`
`#include <libexif/exif-mem.h>`

Go to the source code of this file.

## Typedefs

typedef struct _ExifLoader | ExifLoader
| Data used by the loader interface.

## Functions

ExifLoader * | exif_loader_new (void)
| Allocate a new ExifLoader. More...
ExifLoader * | exif_loader_new_mem (ExifMem *mem)
| Allocate a new ExifLoader using the specified memory allocator. More...
void | exif_loader_ref (ExifLoader *loader)
| Increase the refcount of the ExifLoader. More...
void | exif_loader_unref (ExifLoader *loader)
| Decrease the refcount of the ExifLoader. More...
void | exif_loader_write_file (ExifLoader *loader, const char *fname)
| Load a file into the given ExifLoader from the filesystem. More...
unsigned char | exif_loader_write (ExifLoader *loader, unsigned char *buf, unsigned int sz)
| Load a buffer into the ExifLoader from a memory buffer. More...
void | exif_loader_reset (ExifLoader *loader)
| Free any data previously loaded and reset the ExifLoader to its newly-initialized state. More...
ExifData * | exif_loader_get_data (ExifLoader *loader)
| Create an ExifData from the data in the loader. More...
void | exif_loader_get_buf (ExifLoader *loader, const unsigned char **buf, unsigned int *buf_size)
| Return the raw data read by the loader. More...
void | exif_loader_log (ExifLoader *loader, ExifLog *log)
| Set the log message object used by this ExifLoader. More...

## Detailed Description

Defines the ExifLoader type.

## Function Documentation

## exif_loader_get_buf()

void exif_loader_get_buf | ( | ExifLoader * | loader,
|  | const unsigned char ** | buf,
|  | unsigned int * | buf_size
| ) |  |

Return the raw data read by the loader.

The returned pointer is only guaranteed to be valid until the next call to a function modifying this ExifLoader. Either or both of buf and buf_size may be NULL on entry, in which case that value is not returned.

Parameters

  [in] | loader | the loader
  [out] | buf | read-only pointer to the data read by the loader, or NULL in case of error
  [out] | buf_size | size of the data at buf, or 0 in case of error

## exif_loader_get_data()

ExifData* exif_loader_get_data | ( | ExifLoader * | loader | ) |

Create an ExifData from the data in the loader.

The loader must already contain data from a previous call to exif_loader_write_file or exif_loader_write.

Note
  The ExifData returned is created using its default options, which may take effect before the data is returned. If other options are desired, an ExifData must be created explicitly and data extracted from the loader using exif_loader_get_buf instead.

Parameters

  [in] | loader | the loader

Returns
  allocated ExifData

See also
  exif_loader_get_buf

References exif_data_load_data(), exif_data_log(), and exif_data_new_mem().

Referenced by exif_data_new_from_file().

## exif_loader_log()

void exif_loader_log | ( | ExifLoader * | loader,
|  | ExifLog * | log
| ) |  |

Set the log message object used by this ExifLoader.

Parameters

  [in] | loader | the loader
  [in] | log | ExifLog

## exif_loader_new()

ExifLoader* exif_loader_new | ( | void |  | ) |

Allocate a new ExifLoader.

Returns
  allocated ExifLoader

References exif_loader_new_mem(), exif_mem_new_default(), and exif_mem_unref().

Referenced by exif_data_new_from_file().

## exif_loader_new_mem()

ExifLoader* exif_loader_new_mem | ( | ExifMem * | mem | ) |

Allocate a new ExifLoader using the specified memory allocator.

Parameters

  [in] | mem | the ExifMem

Returns
  allocated ExifLoader

Referenced by exif_loader_new().

## exif_loader_ref()

void exif_loader_ref | ( | ExifLoader * | loader | ) |

Increase the refcount of the ExifLoader.

Parameters

  [in] | loader | the ExifLoader to increase the refcount of.

References exif_loader_reset().

## exif_loader_reset()

void exif_loader_reset | ( | ExifLoader * | loader | ) |

Free any data previously loaded and reset the ExifLoader to its newly-initialized state.

Parameters

  [in] | loader | the loader

Referenced by exif_loader_ref().

## exif_loader_unref()

void exif_loader_unref | ( | ExifLoader * | loader | ) |

Decrease the refcount of the ExifLoader.

If the refcount reaches 0, the loader is freed.

Parameters

  [in] | loader | ExifLoader for which to decrease the refcount

Referenced by exif_data_new_from_file().

## exif_loader_write()

unsigned char exif_loader_write | ( | ExifLoader * | loader,
|  | unsigned char * | buf,
|  | unsigned int | sz
| ) |  |

Load a buffer into the ExifLoader from a memory buffer.

The relevant data is copied in raw form into the ExifLoader.

Parameters

  [in] | loader | loader to write to
  [in] | buf | buffer to read from
  [in] | sz | size of the buffer

Returns
  1 while EXIF data is read (or while there is still hope that there will be EXIF data later on), 0 otherwise.

## exif_loader_write_file()

void exif_loader_write_file | ( | ExifLoader * | loader,
|  | const char * | fname
| ) |  |

Load a file into the given ExifLoader from the filesystem.

The relevant data is copied in raw form into the ExifLoader.

Parameters

  [in] | loader | loader to write to
  [in] | fname | path to the file to read

Referenced by exif_data_new_from_file().